def setUp(self): self.transform = VoteTransform()
class VoteTransformTest(unittest.TestCase): """ Test suite for vote_transform.py.""" def setUp(self): self.transform = VoteTransform() def test_custom_class_transform(self): """ Verifies that custom classes can be properly encoded and decoded.""" for each_class in db_constants.DB_CUSTOM_CLASSES: class_object = each_class() encoding = self.transform.transform_incoming(class_object) output = self.transform.transform_outgoing(encoding) self.assertTrue(type(output) is type(class_object)) self.assertEqual(output.__dict__, class_object.__dict__) def test_custom_class_in_json_transform(self): """ Verifies custom classes within json are encoded and decoded.""" for each_class in db_constants.DB_CUSTOM_CLASSES: class_object = each_class() json = {"test": class_object} encoding = self.transform.transform_incoming(json) output = self.transform.transform_outgoing(encoding) self.assertTrue(type(output) is dict) self.assertEqual(output["test"].__dict__, class_object.__dict__) def test_custom_class_in_custom_class_transform(self): """ Verifies a custom classes within another is handled properly.""" for each_class in db_constants.DB_CUSTOM_CLASSES: class_object = each_class() class_object2 = each_class() class_object.test = class_object2 encoding = self.transform.transform_incoming(class_object) output = self.transform.transform_outgoing(encoding) self.assertTrue(type(output) is type(class_object)) self.assertEqual(output.test.__dict__, class_object2.__dict__) def test_list_transform(self): """ Verifies custom classes within lists are encoded and decoded.""" for each_class in db_constants.DB_CUSTOM_CLASSES: class_object_list = [each_class(), each_class()] class_object_list[1].extra = "something different" json = {"test": class_object_list} encoding = self.transform.transform_incoming(json) output = self.transform.transform_outgoing(encoding) self.assertTrue(type(output) is dict) self.assertEqual(len(class_object_list), len(output["test"])) for input_class, output_class in zip(class_object_list, output["test"]): self.assertEqual(input_class.__dict__, output_class.__dict__) def test_dict_transform(self): """ Verifies custom classes in dictionaries are encoded and decoded.""" for each_class in db_constants.DB_CUSTOM_CLASSES: class_object = each_class() json = {"test": {"test2" : class_object }} encoding = self.transform.transform_incoming(json) output = self.transform.transform_outgoing(encoding) output_class = output["test"]["test2"] self.assertTrue(type(output) is dict) self.assertEqual(output_class.__dict__, class_object.__dict__)