def test_owned_dict_raises_when_wrong_type_arguments_to_update(self): owner = Owner() owned_dict = OwnedDict({'a': 1, 'b': 2, 'c': 3}) owned_dict.owner = owner with self.assertRaisesRegex(TypeError, ("'int' object is not " "iterable")): owned_dict.update(5)
def test_owned_dict_raises_when_wrong_arguments_to_update(self): owner = Owner() owned_dict = OwnedDict({'a': 1, 'b': 2, 'c': 3}) owned_dict.owner = owner with self.assertRaisesRegex(TypeError, ('update expected at most 1 ' 'argument, got 2')): owned_dict.update([('c', 0), ('d', 4), ('e', 5)], {}, c=50)
def test_owned_dict_get_notified_thru_update_iterable_and_kwargs(self): owner = Owner() owned_dict = OwnedDict({'a': 1, 'b': 2, 'c': 3}) owned_dict.owner = owner owned_dict.update([('c', 0), ('d', 4), ('e', 5)], c=50) self.assertEqual(owned_dict, {'a': 1, 'b': 2, 'c': 50, 'd': 4, 'e': 5}) self.assertEqual(owner.add_records, [ AddRecord(owned_dict, 'c', 50), AddRecord(owned_dict, 'd', 4), AddRecord(owned_dict, 'e', 5) ]) self.assertEqual(owner.del_records, [DelRecord(owned_dict, 3)])
def test_owned_dict_get_notified_thru_update_map_and_kwargs(self): owner = Owner() owned_dict = OwnedDict({'a': 1, 'b': 2, 'c': 3}) owned_dict.owner = owner owned_dict.update({'c': 0, 'd': 4, 'e': 5}, c=7) self.assertEqual(owned_dict, {'a': 1, 'b': 2, 'c': 7, 'd': 4, 'e': 5}) self.assertEqual(owner.add_records, [ AddRecord(owned_dict, 'c', 7), AddRecord(owned_dict, 'd', 4), AddRecord(owned_dict, 'e', 5) ]) self.assertEqual(owner.del_records, [DelRecord(owned_dict, 3)])