Merge pull request #1886 from 0xFelix/resource-field-to-dict

Add to_dict method to ResourceField
This commit is contained in:
Kubernetes Prow Robot 2023-02-24 18:06:05 -08:00 committed by GitHub
commit 0c6714abef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View File

@ -389,3 +389,15 @@ class ResourceField(object):
def __iter__(self):
for k, v in self.__dict__.items():
yield (k, v)
def to_dict(self):
return self.__serialize(self)
def __serialize(self, field):
if isinstance(field, ResourceField):
return {
k: self.__serialize(v) for k, v in field.__dict__.items()
}
if isinstance(field, (list, tuple)):
return [self.__serialize(item) for item in field]
return field

View File

@ -563,5 +563,4 @@ class TestDynamicClientSerialization(unittest.TestCase):
res = ResourceField(params=params)
self.assertEqual(res["foo"], params["foo"])
self.assertEqual(res["self"], params["self"])
# method will return original object when it doesn't know how to proceed
self.assertEqual(self.client.serialize_body(res), res)
self.assertEqual(self.client.serialize_body(res), params)