def test_owned_dict_pop_3_arguments_raises(self):
     owner = Owner()
     owned_dict = OwnedDict({'a': 1, 'b': 2, 'c': 3})
     owned_dict.owner = owner
     with self.assertRaisesRegex(TypeError, ('pop expected at most 2 '
                                             'arguments, got 3')):
         owned_dict.pop(1, 2, 3)
 def test_owned_dict_pop_zero_arguments_raises(self):
     owner = Owner()
     owned_dict = OwnedDict({'a': 2, 'b': 3})
     owned_dict.owner = owner
     with self.assertRaisesRegex(TypeError, ('pop expected at least 1 '
                                             'argument, got 0')):
         owned_dict.pop()
 def test_owned_dict_get_notified_thru_pop_with_default_no_key(self):
     owner = Owner()
     owned_dict = OwnedDict({'a': 2, 'b': 3})
     owned_dict.owner = owner
     owned_dict.pop('z', 4)
     self.assertEqual(owned_dict, {'a': 2, 'b': 3})
     self.assertEqual(owner.add_records, [])
     self.assertEqual(owner.del_records, [])
 def test_owned_dict_get_notified_thru_pop(self):
     owner = Owner()
     owned_dict = OwnedDict({'a': 2, 'b': 3})
     owned_dict.owner = owner
     owned_dict.pop('a')
     self.assertEqual(owned_dict, {'b': 3})
     self.assertEqual(owner.add_records, [])
     self.assertEqual(owner.del_records, [DelRecord(owned_dict, 2)])
 def test_owned_dict_pop_undefined_key_raises(self):
     owner = Owner()
     owned_dict = OwnedDict({'a': 2, 'b': 3})
     owned_dict.owner = owner
     with self.assertRaisesRegex(KeyError, 'z'):
         owned_dict.pop('z')