def test_new_object_incoming(self): class MockResource(ModelResource): model_class = Mock() fields = [ AttributeField(attribute='bar', type=int), ] field = OneToOneField(attribute='foo', resource_class=MockResource) source_dict = { 'foo': {'bar': 20}, } # The django ORM makes me sad that this is not a None or AttributeError class MockFailsOnFooAccess(Mock): def __getattr__(self, name): if name == 'foo': raise ObjectDoesNotExist else: return super(Mock, self).__getattr__(name) target_object = MockFailsOnFooAccess() target_object._meta.get_field().related.field.name = 'bar' field.handle_incoming(mock_context(), source_dict, target_object) self.assertEqual(20, target_object.foo.bar) self.assertEqual(MockResource.model_class.return_value, target_object.foo) target_object.foo.save.assert_called()
def test_new_object_incoming(self): class MockResource(ModelResource): model_class = Mock() fields = [ AttributeField(attribute='bar', type=int), ] field = OneToOneField(attribute='foo', resource_class=MockResource) source_dict = { 'foo': { 'bar': 20 }, } # The django ORM makes me sad that this is not a None or AttributeError class MockFailsOnFooAccess(Mock): def __getattr__(self, name): if name == 'foo': raise ObjectDoesNotExist else: return super(Mock, self).__getattr__(name) target_object = MockFailsOnFooAccess() target_object._meta.get_field().related.field.name = 'bar' field.handle_incoming(mock_context(), source_dict, target_object) self.assertEqual(20, target_object.foo.bar) self.assertEqual(MockResource.model_class.return_value, target_object.foo) target_object.foo.save.assert_called()