def test_saving_does_not_mangle_property_names(self): props = { "href": "test/resource", "foo_with_underscores": 1, "camelCaseBar": 2, "baz": { "baz_value": True, "bazCamelCase": False, "quux": ["one", "two", {"value_three": 3, "valueThreeCamel": 3}], }, } ds = MagicMock() client = MagicMock(data_store=ds) d = CustomData(client, properties=props) d["another_underscores"] = 3 d["anotherCamelCase"] = 4 d.save() ds.update_resource.assert_called_once_with( "test/resource", { "foo_with_underscores": 1, "camelCaseBar": 2, "another_underscores": 3, "anotherCamelCase": 4, "baz": { "baz_value": True, "bazCamelCase": False, "quux": ["one", "two", {"value_three": 3, "valueThreeCamel": 3}], }, }, )
def test_doesnt_schedule_del_if_new_property(self): ds = MagicMock() ds.get_resource.return_value = self.props client = MagicMock(data_store=ds) d = CustomData(client, properties=self.props) with self.assertRaises(KeyError): del d['corge'] d.save() self.assertFalse(ds.delete_resource.called)
def test_save_empties_delete_list(self): ds = MagicMock() client = MagicMock(data_store=ds) d = CustomData(client, properties=self.props) del d['foo'] d.save() ds.delete_resource.reset_mock() d.save() self.assertFalse(ds.delete_resource.called)
def test_del_doesnt_delete_if_new_resource(self, is_new): is_new.return_value = True ds = MagicMock() client = MagicMock(data_store=ds) d = CustomData(client, properties=self.props) del d['foo'] is_new.return_value = False d.save() self.assertFalse(ds.delete_resource.called)
def test_del_then_read_doesnt_set_deleted(self): props = {"href": "test/resource", "bar": "2", "baz": ["one", "two", "three"], "quux": {"key": "value"}} ds = MagicMock() ds.get_resource.return_value = self.props client = MagicMock(data_store=ds) d = CustomData(client, properties=props) del d["foo"] with self.assertRaises(KeyError): d["foo"] d.save() ds.delete_resource.assert_called_once_with("test/resource/foo")
def test_del_delays_deletion_until_save(self): ds = MagicMock() client = MagicMock(data_store=ds) d = CustomData(client, properties=self.props) del d['foo'] del d['bar'] self.assertFalse(ds.delete_resource.called) d.save() ds.delete_resource.assert_any_call('test/resource/foo') ds.delete_resource.assert_any_call('test/resource/bar') self.assertEqual(ds.delete_resource.call_count, 2)
def test_del_then_read_doesnt_set_deleted(self): props = { 'href': 'test/resource', 'bar': '2', 'baz': ['one', 'two', 'three'], 'quux': {'key': 'value'} } ds = MagicMock() ds.get_resource.return_value = self.props client = MagicMock(data_store=ds) d = CustomData(client, properties=props) del d['foo'] with self.assertRaises(KeyError): d['foo'] d.save() ds.delete_resource.assert_called_once_with('test/resource/foo')
def test_del_then_read_doesnt_set_deleted(self): props = { 'href': 'test/resource', 'bar': '2', 'baz': ['one', 'two', 'three'], 'quux': { 'key': 'value' } } ds = MagicMock() ds.get_resource.return_value = self.props client = MagicMock(data_store=ds) d = CustomData(client, properties=props) del d['foo'] with self.assertRaises(KeyError): d['foo'] d.save() ds.delete_resource.assert_called_once_with('test/resource/foo')
def test_saving_does_not_mangle_property_names(self): props = { 'href': 'test/resource', 'foo_with_underscores': 1, 'camelCaseBar': 2, 'baz': { 'baz_value': True, 'bazCamelCase': False, 'quux': ['one', 'two', { 'value_three': 3, 'valueThreeCamel': 3 }] } } ds = MagicMock() client = MagicMock(data_store=ds) d = CustomData(client, properties=props) d['another_underscores'] = 3 d['anotherCamelCase'] = 4 d.save() ds.update_resource.assert_called_once_with( 'test/resource', { 'foo_with_underscores': 1, 'camelCaseBar': 2, 'another_underscores': 3, 'anotherCamelCase': 4, 'baz': { 'baz_value': True, 'bazCamelCase': False, 'quux': ['one', 'two', { 'value_three': 3, 'valueThreeCamel': 3 }] } })
def test_saving_does_not_mangle_property_names(self): props = { 'href': 'test/resource', 'foo_with_underscores': 1, 'camelCaseBar': 2, 'baz': { 'baz_value': True, 'bazCamelCase': False, 'quux': [ 'one', 'two', {'value_three': 3, 'valueThreeCamel': 3} ] } } ds = MagicMock() client = MagicMock(data_store=ds) d = CustomData(client, properties=props) d['another_underscores'] = 3 d['anotherCamelCase'] = 4 d.save() ds.update_resource.assert_called_once_with('test/resource', { 'foo_with_underscores': 1, 'camelCaseBar': 2, 'another_underscores': 3, 'anotherCamelCase': 4, 'baz': { 'baz_value': True, 'bazCamelCase': False, 'quux': [ 'one', 'two', {'value_three': 3, 'valueThreeCamel': 3} ] } })