Skip to content

Commit dc05570

Browse files
Fix conflicts
2 parents d7ddd4a + b2eff93 commit dc05570

File tree

6 files changed

+74
-18
lines changed

6 files changed

+74
-18
lines changed

linode_api4/objects/linode.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -587,16 +587,16 @@ def _populate(self, json):
587587

588588
self._set("devices", MappedObject(**devices))
589589

590-
def _serialize(self, *args, **kwargs):
590+
def _serialize(self, is_put: bool = False):
591591
"""
592592
Overrides _serialize to transform interfaces into json
593593
"""
594-
partial = DerivedBase._serialize(self, *args, **kwargs)
594+
partial = DerivedBase._serialize(self, is_put=is_put)
595595
interfaces = []
596596

597597
for c in self.interfaces:
598598
if isinstance(c, ConfigInterface):
599-
interfaces.append(c._serialize(*args, **kwargs))
599+
interfaces.append(c._serialize(is_put=is_put))
600600
else:
601601
interfaces.append(c)
602602

@@ -2004,8 +2004,8 @@ def _populate(self, json):
20042004
ndist = [Image(self._client, d) for d in self.images]
20052005
self._set("images", ndist)
20062006

2007-
def _serialize(self, *args, **kwargs):
2008-
dct = Base._serialize(self, *args, **kwargs)
2007+
def _serialize(self, is_put: bool = False):
2008+
dct = Base._serialize(self, is_put=is_put)
20092009
dct["images"] = [d.id for d in self.images]
20102010
return dct
20112011

test/integration/login_client/test_login_client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ def test_linode_login_client_generate_login_url_with_scope(linode_login_client):
9797
assert "scopes=linodes%3Aread_write" in url
9898

9999

100+
@pytest.mark.skip("Endpoint may be deprecated")
100101
def test_linode_login_client_expire_token(
101102
linode_login_client, test_oauth_client
102103
):

test/integration/models/domain/test_domain.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ def test_save_null_values_excluded(test_linode_client, test_domain):
2323
domain.master_ips = ["127.0.0.1"]
2424
res = domain.save()
2525

26-
assert res
27-
2826

2927
def test_zone_file_view(test_linode_client, test_domain):
3028
domain = test_linode_client.load(Domain, test_domain.id)

test/integration/models/linode/test_linode.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
import pytest
1111

12-
from linode_api4 import VPCIPAddress
1312
from linode_api4.errors import ApiError
1413
from linode_api4.objects import (
1514
Config,
@@ -181,7 +180,7 @@ def create_linode_for_long_running_tests(test_linode_client, e2e_test_firewall):
181180
def linode_with_disk_encryption(test_linode_client, request):
182181
client = test_linode_client
183182

184-
target_region = get_region(client, {"Disk Encryption"})
183+
target_region = get_region(client, {"LA Disk Encryption"})
185184
label = get_test_label(length=8)
186185

187186
disk_encryption = request.param
@@ -236,7 +235,7 @@ def test_linode_transfer(test_linode_client, linode_with_volume_firewall):
236235
def test_linode_rebuild(test_linode_client):
237236
client = test_linode_client
238237

239-
region = get_region(client, {"Disk Encryption"})
238+
region = get_region(client, {"LA Disk Encryption"})
240239

241240
label = get_test_label() + "_rebuild"
242241

@@ -535,6 +534,7 @@ def test_linode_create_disk(test_linode_client, linode_for_disk_tests):
535534
assert disk.linode_id == linode.id
536535

537536

537+
@pytest.mark.flaky(reruns=3, reruns_delay=2)
538538
def test_linode_instance_password(create_linode_for_pass_reset):
539539
linode = create_linode_for_pass_reset[0]
540540
password = create_linode_for_pass_reset[1]
@@ -775,10 +775,10 @@ def test_create_vpc(
775775
assert vpc_range_ip.address_range == "10.0.0.5/32"
776776
assert not vpc_range_ip.active
777777

778+
# TODO:: Add `VPCIPAddress.filters.linode_id == linode.id` filter back
779+
778780
# Attempt to resolve the IP from /vpcs/ips
779-
all_vpc_ips = test_linode_client.vpcs.ips(
780-
VPCIPAddress.filters.linode_id == linode.id
781-
)
781+
all_vpc_ips = test_linode_client.vpcs.ips()
782782
assert all_vpc_ips[0].dict == vpc_ip.dict
783783

784784
# Test getting the ips under this specific VPC

test/integration/models/lke/test_lke.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ def lke_cluster(test_linode_client):
3232
node_type = test_linode_client.linode.types()[1] # g6-standard-1
3333
version = test_linode_client.lke.versions()[0]
3434

35-
region = get_region(test_linode_client, {"Kubernetes", "Disk Encryption"})
35+
region = get_region(
36+
test_linode_client, {"Kubernetes", "LA Disk Encryption"}
37+
)
3638

3739
node_pools = test_linode_client.lke.node_pool(node_type, 3)
3840
label = get_test_label() + "_cluster"
@@ -115,7 +117,9 @@ def lke_cluster_with_labels_and_taints(test_linode_client):
115117
def lke_cluster_with_apl(test_linode_client):
116118
version = test_linode_client.lke.versions()[0]
117119

118-
region = get_region(test_linode_client, {"Kubernetes", "Disk Encryption"})
120+
region = get_region(
121+
test_linode_client, {"Kubernetes", "LA Disk Encryption"}
122+
)
119123

120124
# NOTE: g6-dedicated-4 is the minimum APL-compatible Linode type
121125
node_pools = test_linode_client.lke.node_pool("g6-dedicated-4", 3)
@@ -145,7 +149,7 @@ def lke_cluster_enterprise(test_linode_client):
145149
)[0]
146150

147151
region = get_region(
148-
test_linode_client, {"Kubernetes Enterprise", "Disk Encryption"}
152+
test_linode_client, {"Kubernetes Enterprise", "LA Disk Encryption"}
149153
)
150154

151155
node_pools = test_linode_client.lke.node_pool(
@@ -204,7 +208,7 @@ def _to_comparable(p: LKENodePool) -> Dict[str, Any]:
204208

205209
assert _to_comparable(cluster.pools[0]) == _to_comparable(pool)
206210

207-
assert pool.disk_encryption == InstanceDiskEncryptionType.enabled
211+
assert pool.disk_encryption == InstanceDiskEncryptionType.disabled
208212

209213

210214
def test_cluster_dashboard_url_view(lke_cluster):

test/unit/objects/serializable_test.py

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from test.unit.base import ClientBaseCase
33
from typing import Optional
44

5-
from linode_api4 import JSONObject
5+
from linode_api4 import Base, JSONObject, Property
66

77

88
class JSONObjectTest(ClientBaseCase):
@@ -47,3 +47,56 @@ class Foo(JSONObject):
4747
assert foo["foo"] == "test"
4848
assert foo["bar"] == "test2"
4949
assert foo["baz"] == "test3"
50+
51+
def test_serialize_put_class(self):
52+
"""
53+
Ensures that the JSONObject put_class ClassVar functions as expected.
54+
"""
55+
56+
@dataclass
57+
class SubStructOptions(JSONObject):
58+
test1: Optional[str] = None
59+
60+
@dataclass
61+
class SubStruct(JSONObject):
62+
put_class = SubStructOptions
63+
64+
test1: str = ""
65+
test2: int = 0
66+
67+
class Model(Base):
68+
api_endpoint = "/foo/bar"
69+
70+
properties = {
71+
"id": Property(identifier=True),
72+
"substruct": Property(mutable=True, json_object=SubStruct),
73+
}
74+
75+
mock_response = {
76+
"id": 123,
77+
"substruct": {
78+
"test1": "abc",
79+
"test2": 321,
80+
},
81+
}
82+
83+
with self.mock_get(mock_response) as mock:
84+
obj = self.client.load(Model, 123)
85+
86+
assert mock.called
87+
88+
assert obj.id == 123
89+
assert obj.substruct.test1 == "abc"
90+
assert obj.substruct.test2 == 321
91+
92+
obj.substruct.test1 = "cba"
93+
94+
with self.mock_put(mock_response) as mock:
95+
obj.save()
96+
97+
assert mock.called
98+
assert mock.call_data == {
99+
"substruct": {
100+
"test1": "cba",
101+
}
102+
}

0 commit comments

Comments
 (0)