Restore raise_errors to before_import - see #399

This commit is contained in:
Roger Hunwicks 2018-02-27 08:34:56 +02:00
parent 158a1064e8
commit b6d9d32b90
2 changed files with 22 additions and 0 deletions

View File

@ -529,6 +529,8 @@ class Resource(six.with_metaclass(DeclarativeMetaclass)):
logging.exception(e)
tb_info = traceback.format_exc()
result.append_base_error(self.get_error_result_class()(e, tb_info))
if raise_errors:
raise
instance_loader = self._meta.instance_loader_class(self, dataset)

View File

@ -585,6 +585,26 @@ class ModelResourceTest(TestCase):
instance = Book.objects.get(pk=self.book.pk)
self.assertEqual(instance.author_email, 'extra@example.com')
def test_before_import_raises_error(self):
class B(BookResource):
def before_import(self, dataset, using_transactions, dry_run, **kwargs):
raise Exception('This is an invalid dataset')
resource = B()
with self.assertRaises(Exception) as cm:
resource.import_data(self.dataset, raise_errors=True)
self.assertEqual(u"This is an invalid dataset", cm.exception.args[0])
def test_after_import_raises_error(self):
class B(BookResource):
def after_import(self, dataset, result, using_transactions, dry_run, **kwargs):
raise Exception('This is an invalid dataset')
resource = B()
with self.assertRaises(Exception) as cm:
resource.import_data(self.dataset, raise_errors=True)
self.assertEqual(u"This is an invalid dataset", cm.exception.args[0])
def test_link_to_nonexistent_field(self):
with self.assertRaises(FieldDoesNotExist) as cm:
class BrokenBook1(resources.ModelResource):