def test_obj_to_primitive_dict(self): base.CyborgObjectRegistry.register(MyObj) myobj = MyObj(foo=1, bar='foo') self.assertEqual({ 'foo': 1, 'bar': 'foo' }, base.obj_to_primitive(myobj))
def test_obj_to_primitive_with_ip_addr(self): @base.CyborgObjectRegistry.register_if(False) class TestObject(base.CyborgObject): fields = {'addr': fields.IPAddressField(), 'cidr': fields.IPNetworkField()} obj = TestObject(addr='1.2.3.4', cidr='1.1.1.1/16') self.assertEqual({'addr': '1.2.3.4', 'cidr': '1.1.1.1/16'}, base.obj_to_primitive(obj))
def test_obj_to_primitive_recursive(self): base.CyborgObjectRegistry.register(MyObj) class MyList(base.ObjectListBase, base.CyborgObject): fields = {'objects': fields.ListOfObjectsField('MyObj')} mylist = MyList(objects=[MyObj(), MyObj()]) for i, value in enumerate(mylist): value.foo = i self.assertEqual([{'foo': 0}, {'foo': 1}], base.obj_to_primitive(mylist))
def test_obj_to_primitive_list(self): @base.CyborgObjectRegistry.register_if(False) class MyObjElement(base.CyborgObject): fields = {'foo': fields.IntegerField()} def __init__(self, foo): super(MyObjElement, self).__init__() self.foo = foo @base.CyborgObjectRegistry.register_if(False) class MyList(base.ObjectListBase, base.CyborgObject): fields = {'objects': fields.ListOfObjectsField('MyObjElement')} mylist = MyList() mylist.objects = [MyObjElement(1), MyObjElement(2), MyObjElement(3)] self.assertEqual([1, 2, 3], [x['foo'] for x in base.obj_to_primitive(mylist)])