Skip to content

Commit e08d813

Browse files
Add unit tests
1 parent 472ab46 commit e08d813

2 files changed

Lines changed: 66 additions & 0 deletions

File tree

test/unit/objects/linode_test.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,24 @@ def test_interface_ipv4(self):
541541
self.assertEqual(ipv4.vpc, "10.0.0.1")
542542
self.assertEqual(ipv4.nat_1_1, "any")
543543

544+
def test_interface_ipv6(self):
545+
json = {
546+
"slaac": [{"range": "1234::5678/64", "address": "1234::5678"}],
547+
"ranges": [{"range": "1234::5678/64"}],
548+
"is_public": True,
549+
}
550+
551+
ipv6 = ConfigInterfaceIPv6.from_json(json)
552+
553+
assert len(ipv6.slaac) == 1
554+
assert ipv6.slaac[0].range == "1234::5678/64"
555+
assert ipv6.slaac[0].address == "1234::5678"
556+
557+
assert len(ipv6.ranges) == 1
558+
assert ipv6.ranges[0].range == "1234::5678/64"
559+
560+
assert ipv6.is_public
561+
544562
def test_config_devices_unwrap(self):
545563
"""
546564
Tests that config devices can be successfully converted to a dict.
@@ -744,6 +762,11 @@ def test_create_interface_vpc(self):
744762
subnet=VPCSubnet(self.client, 789, 123456),
745763
primary=True,
746764
ipv4=ConfigInterfaceIPv4(vpc="10.0.0.4", nat_1_1="any"),
765+
ipv6=ConfigInterfaceIPv6Options(
766+
slaac=[ConfigInterfaceIPv6OptionsSLAAC(range="auto")],
767+
ranges=[ConfigInterfaceIPv6OptionsRange(range="auto")],
768+
is_public=True,
769+
),
747770
ip_ranges=["10.0.0.0/24"],
748771
)
749772

@@ -757,6 +780,11 @@ def test_create_interface_vpc(self):
757780
"primary": True,
758781
"subnet_id": 789,
759782
"ipv4": {"vpc": "10.0.0.4", "nat_1_1": "any"},
783+
"ipv6": {
784+
"slaac": [{"range": "auto"}],
785+
"ranges": [{"range": "auto"}],
786+
"is_public": True,
787+
},
760788
"ip_ranges": ["10.0.0.0/24"],
761789
}
762790

@@ -765,15 +793,27 @@ def test_create_interface_vpc(self):
765793
assert interface.primary
766794
assert interface.vpc.id == 123456
767795
assert interface.subnet.id == 789
796+
768797
assert interface.ipv4.vpc == "10.0.0.2"
769798
assert interface.ipv4.nat_1_1 == "any"
799+
800+
assert len(interface.ipv6.slaac) == 1
801+
assert interface.ipv6.slaac[0].range == "1234::5678/64"
802+
assert interface.ipv6.slaac[0].address == "1234::5678"
803+
804+
assert len(interface.ipv6.ranges) == 1
805+
assert interface.ipv6.ranges[0].range == "1234::5678/64"
806+
807+
assert interface.ipv6.is_public
808+
770809
assert interface.ip_ranges == ["10.0.0.0/24"]
771810

772811
def test_update(self):
773812
interface = NetworkInterface(self.client, 123, 456789, 123)
774813
interface._api_get()
775814

776815
interface.ipv4.vpc = "10.0.0.3"
816+
interface.ipv6.is_public = False
777817
interface.primary = False
778818
interface.ip_ranges = ["10.0.0.2/32"]
779819

@@ -791,6 +831,11 @@ def test_update(self):
791831
assert m.call_data == {
792832
"primary": False,
793833
"ipv4": {"vpc": "10.0.0.3", "nat_1_1": "any"},
834+
"ipv6": {
835+
"slaac": [{"range": "auto"}],
836+
"ranges": [{"range": "auto"}],
837+
"is_public": True,
838+
},
794839
"ip_ranges": ["10.0.0.2/32"],
795840
}
796841

@@ -811,8 +856,17 @@ def test_get_vpc(self):
811856
self.assertEqual(interface.purpose, "vpc")
812857
self.assertEqual(interface.vpc.id, 123456)
813858
self.assertEqual(interface.subnet.id, 789)
859+
814860
self.assertEqual(interface.ipv4.vpc, "10.0.0.2")
815861
self.assertEqual(interface.ipv4.nat_1_1, "any")
862+
863+
self.assertEqual(len(interface.ipv6.slaac), 1)
864+
self.assertEqual(interface.ipv6.slaac[0].range, "1234::5678/64")
865+
self.assertEqual(interface.ipv6.slaac[0].address, "1234::5678")
866+
self.assertEqual(len(interface.ipv6.ranges), 1)
867+
self.assertEqual(interface.ipv6.ranges[0].range, "1234::5678/64")
868+
self.assertEqual(interface.ipv6.is_public, True)
869+
816870
self.assertEqual(interface.ip_ranges, ["10.0.0.0/24"])
817871
self.assertEqual(interface.active, True)
818872

test/unit/objects/vpc_test.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ def validate_vpc_123456(self, vpc: VPC):
113113
self.assertEqual(vpc.created, expected_dt)
114114
self.assertEqual(vpc.updated, expected_dt)
115115

116+
self.assertEqual(vpc.ipv6[0].range, "fd71:1140:a9d0::/52")
117+
116118
def validate_vpc_subnet_789(self, subnet: VPCSubnet):
117119
expected_dt = datetime.datetime.strptime(
118120
"2018-01-01T00:01:01", DATE_FORMAT
@@ -124,6 +126,8 @@ def validate_vpc_subnet_789(self, subnet: VPCSubnet):
124126
self.assertEqual(subnet.created, expected_dt)
125127
self.assertEqual(subnet.updated, expected_dt)
126128

129+
self.assertEqual(subnet.ipv6[0].range, "fd71:1140:a9d0::/52")
130+
127131
def test_list_vpc_ips(self):
128132
"""
129133
Test that the ips under a specific VPC can be listed.
@@ -148,3 +152,11 @@ def test_list_vpc_ips(self):
148152
self.assertEqual(vpc_ip.gateway, "10.0.0.1")
149153
self.assertEqual(vpc_ip.prefix, 8)
150154
self.assertEqual(vpc_ip.subnet_mask, "255.0.0.0")
155+
156+
vpc_ip_2 = vpc_ips[1]
157+
158+
self.assertEqual(vpc_ip_2.ipv6_range, "fd71:1140:a9d0::/52")
159+
self.assertEqual(vpc_ip_2.ipv6_is_public, True)
160+
self.assertEqual(
161+
vpc_ip_2.ipv6_addresses[0].slaac_address, "fd71:1140:a9d0::/52"
162+
)

0 commit comments

Comments
 (0)