Skip to content

Commit bb93049

Browse files
unit testing progress
1 parent db113e7 commit bb93049

File tree

5 files changed

+71
-3
lines changed

5 files changed

+71
-3
lines changed

linode_api4/objects/linode.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1920,7 +1920,7 @@ def interfaces(self):
19201920
"_interfaces",
19211921
[
19221922
LinodeInterface(
1923-
self._client, self.id, iface["id"], json=iface
1923+
self._client, iface["id"], self.id, json=iface
19241924
)
19251925
for iface in result["interfaces"]
19261926
],

test/fixtures/linode_instances_124_interfaces.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"ipv4": {
1313
"addresses": [
1414
{
15-
"address": "172.30.0.5O",
15+
"address": "172.30.0.50",
1616
"primary": true
1717
}
1818
],

test/fixtures/linode_instances_124_interfaces_123.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"ipv4": {
1111
"addresses": [
1212
{
13-
"address": "172.30.0.5O",
13+
"address": "172.30.0.50",
1414
"primary": true
1515
}
1616
],
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
from datetime import datetime
2+
from test.unit.base import ClientBaseCase
3+
4+
from linode_api4 import (
5+
LinodeInterface,
6+
)
7+
8+
9+
class LinodeInterfaceTest(ClientBaseCase):
10+
"""
11+
Tests methods of the LinodeInterface class
12+
"""
13+
14+
@staticmethod
15+
def assert_linode_124_interface_123(iface: LinodeInterface):
16+
assert iface.id == 123
17+
18+
assert isinstance(iface.created, datetime)
19+
assert isinstance(iface.updated, datetime)
20+
21+
assert iface.default_route.ipv4
22+
assert iface.default_route.ipv6
23+
24+
assert iface.mac_address == "22:00:AB:CD:EF:01"
25+
assert iface.version == 1
26+
27+
assert iface.vlan is None
28+
assert iface.vpc is None
29+
30+
# public.ipv4 assertions
31+
assert iface.public.ipv4.addresses[0].address == "172.30.0.50"
32+
assert iface.public.ipv4.addresses[0].primary
33+
34+
assert iface.public.ipv4.shared[0].address == "172.30.0.51"
35+
assert iface.public.ipv4.shared[0].linode_id == 125
36+
37+
# public.ipv6 assertions
38+
assert iface.public.ipv6.ranges[0].range == "2600:3cO9:e001:59::/64"
39+
assert (
40+
iface.public.ipv6.ranges[0].route_target
41+
== "2600:3cO9::ff:feab:cdef"
42+
)
43+
44+
assert iface.public.ipv6.ranges[1].range == "2600:3cO9:e001:5a::/64"
45+
assert (
46+
iface.public.ipv6.ranges[1].route_target
47+
== "2600:3cO9::ff:feab:cdef"
48+
)
49+
50+
assert iface.public.ipv6.shared[0].range == "2600:3cO9:e001:2a::/64"
51+
assert iface.public.ipv6.shared[0].route_target is None
52+
53+
assert iface.public.ipv6.slaac[0].address == "2600:3cO9::ff:feab:cdef"
54+
assert iface.public.ipv6.slaac[0].prefix == 64

test/unit/objects/linode_test.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,20 @@ def test_get_placement_group(self):
463463
assert pg.label == "test"
464464
assert pg.placement_group_type == "anti_affinity:local"
465465

466+
def test_get_interfaces(self):
467+
# Local import to avoid circular dependency
468+
from linode_interface_test import ( # pylint: disable=import-outside-toplevel
469+
LinodeInterfaceTest,
470+
)
471+
472+
instance = Instance(self.client, 124)
473+
474+
interfaces = instance.interfaces
475+
476+
LinodeInterfaceTest.assert_linode_124_interface_123(
477+
next(iface for iface in interfaces if iface.id == 123)
478+
)
479+
466480

467481
class DiskTest(ClientBaseCase):
468482
"""

0 commit comments

Comments
 (0)