Skip to content

Commit

Permalink
update base_class test to handle multiple networks, add ipv6 to tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jurraca committed Dec 3, 2024
1 parent 07c4004 commit 2b8b0bc
Showing 1 changed file with 19 additions and 14 deletions.
33 changes: 19 additions & 14 deletions tests/merge_base_class_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,30 @@
from kartograf.util import get_root_network


def _df_from_network(network, asn=123):
def _df_from_networks(networks, asn=123):
'''
Create a one-row dataframe that holds the extra file rows in the expected format for contains_row().
'''
ipn = ipaddress.ip_network(network)
root_net = get_root_network(network)
network_int = int(ipn.network_address)
df_extra = pd.DataFrame(
data={"INETS": network_int, "ASNS": asn, "PFXS": network, "PFXS_LEADING": root_net},
index=[0],
df = pd.DataFrame(
columns=["INETS", "ASNS", "PFXS", "PFXS_LEADING"],
)
return df_extra
for network in networks:
ipn = ipaddress.ip_network(network)
root_net = get_root_network(network)
print(root_net)
network_int = int(ipn.network_address)
df.loc[len(df)] = [network_int, asn, str(ipn), root_net]
return df


def test_base_dict_create():
'''
contains_row returns false when adding a row to an empty base file dict.
'''
base = BaseNetworkIndex()
network = "10.10.0.0/16"
df_extra = _df_from_network(network)
ipv4_network = "10.10.0.0/16"
ipv6_network = "2c0f:ff90::/32"
df_extra = _df_from_networks([ipv4_network, ipv6_network])
for row in df_extra.itertuples(index=False):
assert not base.contains_row(row)

Expand All @@ -34,9 +37,11 @@ def test_base_dict_update():
contains_row returns true when adding a row already present in the base dict.
'''
base = BaseNetworkIndex()
network = "10.10.0.0/16"
base.update(network)
df_extra = _df_from_network(network)
ipv4_network = "10.10.0.0/16"
ipv6_network = "2c0f:ff90::/32"
base.update(ipv4_network)
base.update(ipv6_network)
df_extra = _df_from_networks([ipv4_network, ipv6_network])
for row in df_extra.itertuples(index=False):
assert base.contains_row(row)

Expand All @@ -49,6 +54,6 @@ def test_check_included_subnet():
network = "10.10.0.0/16"
base.update(network)
subnet = "10.10.0.0/21"
df_extra = _df_from_network(subnet)
df_extra = _df_from_networks([subnet])
for row in df_extra.itertuples(index=False):
assert base.contains_row(row)

0 comments on commit 2b8b0bc

Please sign in to comment.