Merge "fakes: Generate correct type for list type components"
This commit is contained in:
commit
911cf7ddb1
|
@ -96,9 +96,9 @@ def generate_fake_resource(
|
||||||
item_type = value.list_type
|
item_type = value.list_type
|
||||||
if issubclass(item_type, resource.Resource):
|
if issubclass(item_type, resource.Resource):
|
||||||
# item is of Resource type
|
# item is of Resource type
|
||||||
base_attrs[name] = generate_fake_resource(item_type)
|
base_attrs[name] = [generate_fake_resource(item_type)]
|
||||||
elif issubclass(item_type, dict):
|
elif issubclass(item_type, dict):
|
||||||
base_attrs[name] = dict()
|
base_attrs[name] = [{}]
|
||||||
elif issubclass(item_type, str):
|
elif issubclass(item_type, str):
|
||||||
base_attrs[name] = [uuid.uuid4().hex]
|
base_attrs[name] = [uuid.uuid4().hex]
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -27,7 +27,7 @@ class TestGetFake(base.TestCase):
|
||||||
self.assertIsInstance(res[0], resource.Resource)
|
self.assertIsInstance(res[0], resource.Resource)
|
||||||
|
|
||||||
def test_generate_fake_resource_types(self):
|
def test_generate_fake_resource_types(self):
|
||||||
class Fake(resource.Resource):
|
class Foo(resource.Resource):
|
||||||
a = resource.Body("a", type=str)
|
a = resource.Body("a", type=str)
|
||||||
b = resource.Body("b", type=int)
|
b = resource.Body("b", type=int)
|
||||||
c = resource.Body("c", type=bool)
|
c = resource.Body("c", type=bool)
|
||||||
|
@ -35,13 +35,35 @@ class TestGetFake(base.TestCase):
|
||||||
e = resource.Body("e", type=dict)
|
e = resource.Body("e", type=dict)
|
||||||
f = resource.URI("path")
|
f = resource.URI("path")
|
||||||
|
|
||||||
res = fakes.generate_fake_resource(Fake)
|
class Bar(resource.Resource):
|
||||||
self.assertIsInstance(res.a, str)
|
a = resource.Body("a", type=list, list_type=str)
|
||||||
self.assertIsInstance(res.b, int)
|
b = resource.Body("b", type=list, list_type=dict)
|
||||||
self.assertIsInstance(res.c, bool)
|
c = resource.Body("c", type=list, list_type=Foo)
|
||||||
self.assertIsInstance(res.d, bool)
|
|
||||||
self.assertIsInstance(res.e, dict)
|
foo = fakes.generate_fake_resource(Foo)
|
||||||
self.assertIsInstance(res.f, str)
|
self.assertIsInstance(foo.a, str)
|
||||||
|
self.assertIsInstance(foo.b, int)
|
||||||
|
self.assertIsInstance(foo.c, bool)
|
||||||
|
self.assertIsInstance(foo.d, bool)
|
||||||
|
self.assertIsInstance(foo.e, dict)
|
||||||
|
self.assertIsInstance(foo.f, str)
|
||||||
|
|
||||||
|
bar = fakes.generate_fake_resource(Bar)
|
||||||
|
self.assertIsInstance(bar.a, list)
|
||||||
|
self.assertEqual(1, len(bar.a))
|
||||||
|
self.assertIsInstance(bar.a[0], str)
|
||||||
|
self.assertIsInstance(bar.b, list)
|
||||||
|
self.assertEqual(1, len(bar.b))
|
||||||
|
self.assertIsInstance(bar.b[0], dict)
|
||||||
|
self.assertIsInstance(bar.c, list)
|
||||||
|
self.assertEqual(1, len(bar.c))
|
||||||
|
self.assertIsInstance(bar.c[0], Foo)
|
||||||
|
self.assertIsInstance(bar.c[0].a, str)
|
||||||
|
self.assertIsInstance(bar.c[0].b, int)
|
||||||
|
self.assertIsInstance(bar.c[0].c, bool)
|
||||||
|
self.assertIsInstance(bar.c[0].d, bool)
|
||||||
|
self.assertIsInstance(bar.c[0].e, dict)
|
||||||
|
self.assertIsInstance(bar.c[0].f, str)
|
||||||
|
|
||||||
def test_generate_fake_resource_attrs(self):
|
def test_generate_fake_resource_attrs(self):
|
||||||
class Fake(resource.Resource):
|
class Fake(resource.Resource):
|
||||||
|
|
Loading…
Reference in New Issue