Skip to content

Commit

Permalink
merge test updates from release-4
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewhegarty committed Jan 12, 2024
1 parent ed5c55f commit b56fad8
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 12 deletions.
Expand Up @@ -15,7 +15,7 @@
from django.db.utils import ConnectionDoesNotExist
from django.test import TestCase

from import_export import fields, resources, results
from import_export import exceptions, fields, resources, results


class DynamicBehaviorCustomizationTest(TestCase):
Expand Down Expand Up @@ -116,9 +116,9 @@ def before_import(self, dataset, **kwargs):
raise Exception("This is an invalid dataset")

resource = B()
with self.assertRaises(Exception) as cm:
with self.assertRaises(exceptions.ImportError) as cm:
resource.import_data(self.dataset, raise_errors=True)
self.assertEqual("This is an invalid dataset", cm.exception.args[0])
self.assertEqual("This is an invalid dataset", cm.exception.error.args[0])

@ignore_widget_deprecation_warning
def test_after_import_raises_error(self):
Expand All @@ -129,9 +129,9 @@ def after_import(
raise Exception("This is an invalid dataset")

resource = B()
with self.assertRaises(Exception) as cm:
with self.assertRaises(exceptions.ImportError) as cm:
resource.import_data(self.dataset, raise_errors=True)
self.assertEqual("This is an invalid dataset", cm.exception.args[0])
self.assertEqual("This is an invalid dataset", cm.exception.error.args[0])

def test_link_to_nonexistent_field(self):
with self.assertRaises(FieldDoesNotExist) as cm:
Expand Down
Expand Up @@ -10,7 +10,6 @@
)
from core.tests.utils import ignore_widget_deprecation_warning
from django.core.exceptions import ImproperlyConfigured, ValidationError
from django.db import IntegrityError
from django.test import TestCase

from import_export import exceptions, results
Expand Down Expand Up @@ -111,21 +110,24 @@ def test_row_result_raise_errors(self):
# 'user' is a required field, the database will raise an error.
row = [None, None]
dataset = tablib.Dataset(row, headers=headers)
with self.assertRaises(IntegrityError):
with self.assertRaises(exceptions.ImportError) as exc:
resource.import_data(
dataset,
dry_run=True,
use_transactions=True,
raise_errors=True,
)
row_error = exc.exception
self.assertEqual(1, row_error.number)
self.assertEqual({"id": None, "user": None}, row_error.row)

@ignore_widget_deprecation_warning
def test_collect_failed_rows_validation_error(self):
resource = ProfileResource()
row = ["1"]
dataset = tablib.Dataset(row, headers=["id"])
with mock.patch(
"import_export.resources.Field.save", side_effect=ValidationError("fail!")
"import_export.resources.Field.save", side_effect=Exception("fail!")
):
result = resource.import_data(
dataset,
Expand All @@ -139,9 +141,7 @@ def test_collect_failed_rows_validation_error(self):
len(result.failed_dataset),
)
self.assertEqual("1", result.failed_dataset.dict[0]["id"])
self.assertEqual(
"{'__all__': ['fail!']}", result.failed_dataset.dict[0]["Error"]
)
self.assertEqual("fail!", result.failed_dataset.dict[0]["Error"])

@ignore_widget_deprecation_warning
def test_row_result_raise_ValidationError(self):
Expand All @@ -151,7 +151,9 @@ def test_row_result_raise_ValidationError(self):
with mock.patch(
"import_export.resources.Field.save", side_effect=ValidationError("fail!")
):
with self.assertRaisesRegex(ValidationError, "{'__all__': \\['fail!'\\]}"):
with self.assertRaisesRegex(
exceptions.ImportError, "{'__all__': \\['fail!'\\]}"
):
resource.import_data(
dataset,
dry_run=True,
Expand Down

0 comments on commit b56fad8

Please sign in to comment.