def test_equal_circular_objs(self): class Cls(object): pass lst1 = [1, 2, 3] lst2 = [1, 2, 3] lst1.append(lst1) lst2.append(lst2) dct1 = {'one': 10, 'two': lst1} dct2 = {'one': 10, 'two': lst1} obj1 = Cls() obj2 = Cls() obj1.a = obj2.a = 10 obj1.self = obj1 obj2.self = obj2 comparison = utils.is_different(lst1, lst2) comparison2 = utils.is_different(dct1, dct2) comparison3 = utils.is_different(obj1, obj2) self.assertFalse(comparison) self.assertFalse(comparison2) self.assertFalse(comparison3)
def test_different_objs(self): class Cls1(object): a = 10 class Cls2(object): b = 20 obj1 = Cls1() obj2 = Cls2() obj3 = Cls1() obj3.a = {'one': 14, 'two': [(1, 2, 3), 'more']} comparison1 = utils.is_different(obj1, obj2) comparison2 = utils.is_different(obj1, obj3) self.assertTrue(comparison1) self.assertTrue(comparison2)
def test_different_circular_objs(self): class Cls(object): pass obj1 = Cls() obj2 = Cls() obj1.self = obj1 obj2.self = {'self': obj2} dct1 = {'one': [1, 2], 'three': 10} dct2 = {'one': [1, 2]} dct1['self'] = dct1 dct2['self'] = dct2 comparison = utils.is_different(obj1, obj2) comparison1 = utils.is_different(dct1, dct2) self.assertTrue(comparison) self.assertTrue(comparison1)
def merge_lists(list1, list2): result = [] for item in list1 + list2: exists = False for old_item in result: if not utils.is_different(item, old_item): exists = True break if not exists: result.append(item) return result
def test_equal_objs(self): class Cls(object): pass obj1 = Cls() obj2 = Cls() obj1.a = {'one': 14, 'two': [(1, 2, 3), 'more']} obj2.a = {'one': 14, 'two': [(1, 2, 3), 'more']} comparison = utils.is_different(obj1, obj2) self.assertFalse(comparison)
def test_different_dicts(self): obj1 = {'first': 10, 'second': 11} obj2 = {'first': 10, 'second': 12} comparison = utils.is_different(obj1, obj2) self.assertTrue(comparison)
def test_equal_dicts(self): obj1 = {'first': 10, 'second': 12} obj2 = {'second': 12, 'first': 10} comparison = utils.is_different(obj1, obj2) self.assertFalse(comparison)