From 494c4ed03d7e673987afeba197f61c4407b95b5f Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Mar 2022 23:58:17 +0100 Subject: [PATCH] only raise if integrity error --- InvenTree/InvenTree/tests.py | 12 ++++++------ InvenTree/plugin/helpers.py | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/InvenTree/InvenTree/tests.py b/InvenTree/InvenTree/tests.py index 59e165b1e6..16e09615aa 100644 --- a/InvenTree/InvenTree/tests.py +++ b/InvenTree/InvenTree/tests.py @@ -7,7 +7,7 @@ import django.core.exceptions as django_exceptions from django.core.exceptions import ValidationError from django.contrib.auth import get_user_model from django.conf import settings -# from django.db.utils import IntegrityError +from django.db.utils import IntegrityError from djmoney.money import Money from djmoney.contrib.exchange.models import Rate, convert_money @@ -455,11 +455,11 @@ class TestSettings(TestCase): self.assertEqual(user_count(), 1) # enough set - duplicate entry - # with self.assertRaises(IntegrityError): - self.env.set('INVENTREE_ADMIN_USER', 'admin') # set username - self.env.set('INVENTREE_ADMIN_EMAIL', 'info@example.com') # set email - self.env.set('INVENTREE_ADMIN_PASSWORD', 'password123') # set password - self.run_reload() + with self.assertRaises(IntegrityError): + self.env.set('INVENTREE_ADMIN_USER', 'admin') # set username + self.env.set('INVENTREE_ADMIN_EMAIL', 'info@example.com') # set email + self.env.set('INVENTREE_ADMIN_PASSWORD', 'password123') # set password + self.run_reload() self.assertEqual(user_count(), 1) # make sure to clean up diff --git a/InvenTree/plugin/helpers.py b/InvenTree/plugin/helpers.py index 2db1b79bdd..7f9f2be740 100644 --- a/InvenTree/plugin/helpers.py +++ b/InvenTree/plugin/helpers.py @@ -11,6 +11,7 @@ import pkgutil from django.conf import settings from django.core.exceptions import AppRegistryNotReady +from django.db.utils import IntegrityError # region logging / errors @@ -86,7 +87,7 @@ def handle_error(error, do_raise: bool = True, do_log: bool = True, log_name: st if do_raise: # do a straight raise if we are playing with enviroment variables at execution time, ignore the broken sample - if settings.TESTING_ENV and package_name != 'integration.broken_sample': + if settings.TESTING_ENV and package_name != 'integration.broken_sample' and isinstance(error, IntegrityError): raise error raise IntegrationPluginError(package_name, str(error)) # endregion