def test_deserialize(self): value = '[{"pk": 1, "model": "test_app1.userprofile", "fields": '\ '{"url": "http://www.google.com", "user": 1, '\ '"description": "Profile description"}}]' json_field = SerializedObjectField() object = json_field._deserialize(value) self.assertEqual(repr(object), '<UserProfile: moderator - http://www.google.com>') self.assertTrue(isinstance(object, UserProfile))
def test_deserialize_proxy_model(self): "Correctly restore a proxy model." value = '[{"pk": 2, "model": "tests.proxyprofile", "fields": '\ '{"url": "http://example.com", "user": 2, '\ '"description": "I\'m a proxy."}}]' json_field = SerializedObjectField() profile = json_field._deserialize(value) self.assertTrue(isinstance(profile, ProxyProfile)) self.assertEqual(profile.url, "http://example.com") self.assertEqual(profile.description, "I\'m a proxy.") self.assertEqual(profile.user_id, 2)
def test_deserialize_with_inheritance(self): value = '[{"pk": 2, "model": "test_app1.superuserprofile",'\ ' "fields": {"super_power": "invisibility"}}, '\ '{"pk": 2, "model": "test_app1.userprofile", "fields":'\ ' {"url": "http://www.test.com", "user": 2,'\ ' "description": "Profile for new super user"}}]' json_field = SerializedObjectField() object = json_field._deserialize(value) self.assertTrue(isinstance(object, SuperUserProfile)) self.assertEqual(repr(object), '<SuperUserProfile: user1 - http://www.test.com - invisibility>')
def test_deserialize_with_inheritance(self): value = '[{"pk": 2, "model": "test_app1.superuserprofile",'\ ' "fields": {"super_power": "invisibility"}}, '\ '{"pk": 2, "model": "test_app1.userprofile", "fields":'\ ' {"url": "http://www.test.com", "user": 2,'\ ' "description": "Profile for new super user"}}]' json_field = SerializedObjectField() object = json_field._deserialize(value) self.assertTrue(isinstance(object, SuperUserProfile)) self.assertEqual( repr(object), '<SuperUserProfile: user1 - http://www.test.com - invisibility>')
def test_deserialize_many_objects(self): value = '[{"pk": 1, "model": "test_app.userprofile", '\ '"fields": {"url": "http://www.google.com",'\ ' "user": 1, "description": "Profile description"}},'\ ' {"pk": 2, "model": "test_app.userprofile", "fields":'\ ' {"url": "http://www.yahoo.com", "user": 2, '\ '"description": "Profile description 2"}}]' json_field = SerializedObjectField() objects = json_field._deserialize(value) self.assertTrue(isinstance(objects, list)) self.assertTrue(isinstance(objects[0], UserProfile)) self.assertEqual(repr(objects[0]), '<UserProfile: moderator - http://www.google.com>') self.assertTrue(isinstance(objects[1], UserProfile)) self.assertEqual(repr(objects[1]), '<UserProfile: user1 - http://www.yahoo.com>')