Skip to content

Commit c66a391

Browse files
authored
Merge pull request kubernetes-client#1738 from abikouo/fix_resource_field
fix issue when trying to build ResourceField with argument name 'self'
2 parents cd78725 + 3117c53 commit c66a391

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

kubernetes/base/dynamic/resource.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ def __init__(self, client, instance):
298298

299299
def __deserialize(self, field):
300300
if isinstance(field, dict):
301-
return ResourceField(**{
301+
return ResourceField(params={
302302
k: self.__deserialize(v) for k, v in field.items()
303303
})
304304
elif isinstance(field, (list, tuple)):
@@ -359,8 +359,8 @@ class ResourceField(object):
359359
attributes to be accessed with '.' notation
360360
"""
361361

362-
def __init__(self, **kwargs):
363-
self.__dict__.update(kwargs)
362+
def __init__(self, params):
363+
self.__dict__.update(**params)
364364

365365
def __repr__(self):
366366
return pformat(self.__dict__)

kubernetes/base/dynamic/test_client.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,12 @@ def test_resource_field(self):
558558
"""`ResourceField` is a special type which overwrites `__getattr__` method to return `None`
559559
when a non-existent attribute was accessed. which means it can pass any `hasattr(...)` tests.
560560
"""
561-
res = ResourceField(foo='bar')
561+
params = {
562+
"foo": "bar",
563+
"self": True
564+
}
565+
res = ResourceField(params=params)
566+
self.assertEqual(res["foo"], params["foo"])
567+
self.assertEqual(res["self"], params["self"])
562568
# method will return original object when it doesn't know how to proceed
563569
self.assertEqual(self.client.serialize_body(res), res)

0 commit comments

Comments
 (0)