def test5_full_integration_test_missing_from_dict(self): test_dict = { 'foo': 'bar', 'aaa': 'bbb', 'ccc': 'bbb', 'zzz': 'zzz', } compare_dict = { 'foo': 'foo', 'aaa': 'aaa', 'ccc': 'ccc', 'yyy': 'yyy', 'zzz': 'zzz', } setattr(self.gen_obj, 'foo', 'bar') setattr(self.gen_obj, 'aaa', 'zzz') setattr(self.gen_obj, 'ccc', 'ddd') setattr(self.gen_obj, 'yyy', 'yyy') dod = DictObjectDiffer(test_dict, self.gen_obj, compare_dict) dod.compare() self.assertEqual(dod.dict_difference, { 'ccc': 'ddd', 'aaa': 'zzz', }) self.assertEqual(dod.object_difference, { 'aaa': 'bbb', 'ccc': 'bbb', }) self.assertEqual(dod.missing_from_dict, { 'yyy': 'yyy', }) self.assertEqual(dod.missing_from_object, { 'zzz': 'zzz', })
def test6_dict_missing_key(self): test_dict = { 'foo': 'bar', } setattr(self.gen_obj, 'doesntexistindict', 'baz') dod = DictObjectDiffer(test_dict, self.gen_obj, {'doesntexistindict': 'foo'}) missing_from_object = dod._missing_from_object() self.assertEqual(missing_from_object, {'doesntexistindict': ''})
def test1_object_equals_dict(self): test_dict = { 'foo': 'foo' } """ We haven't added a foo attribute to our gen_obj so dod.missing_from_object should include {'foo': 'bar'} """ setattr(self.gen_obj, 'foo', 'foo') dod = DictObjectDiffer(test_dict, self.gen_obj, {'foo': 'foo'}) self.assertEqual( dod._missing_from_object(test_dict, self.gen_obj, {'foo': 'foo'}), {} )
def test4_object_and_dict_differ(self): test_dict = { 'foo': 'bar', } setattr(self.gen_obj, 'foo', 'baz') dod = DictObjectDiffer(test_dict, self.gen_obj, {'foo': 'foo'}) dict_difference, object_difference = \ dod._compare_dict_to_object( test_dict, self.gen_obj, {'foo': 'foo'} ) self.assertEqual(dict_difference, {'foo': 'baz'}) self.assertEqual(object_difference, {'foo': 'bar'})