From 32cfe1b95419273f6c504fff5d49c00625ad14b4 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 30 Mar 2021 08:25:51 +1100 Subject: [PATCH 1/4] Emit warning rather than raise error - All calling functions check for None anyway --- InvenTree/users/models.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/InvenTree/users/models.py b/InvenTree/users/models.py index 5c95abfe46..42028e91f0 100644 --- a/InvenTree/users/models.py +++ b/InvenTree/users/models.py @@ -12,6 +12,11 @@ from django.utils.translation import gettext_lazy as _ from django.dispatch import receiver from django.db.models.signals import post_save, post_delete +import logging + + +logger = logging.getLogger(__name__) + class RuleSet(models.Model): """ @@ -345,7 +350,7 @@ def update_group_roles(group, debug=False): content_type = ContentType.objects.get(app_label=app, model=model) permission = Permission.objects.get(content_type=content_type, codename=perm) except ContentType.DoesNotExist: - raise ValueError(f"Error: Could not find permission matching '{permission_string}'") + logger.warning(f"Error: Could not find permission matching '{permission_string}'") permission = None return permission From 0b78f3d931301d9a66b6778b87ebbd4fc40d0777 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 30 Mar 2021 08:42:44 +1100 Subject: [PATCH 2/4] Add unit testing for migrations --- InvenTree/users/test_migrations.py | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 InvenTree/users/test_migrations.py diff --git a/InvenTree/users/test_migrations.py b/InvenTree/users/test_migrations.py new file mode 100644 index 0000000000..1f10d041c2 --- /dev/null +++ b/InvenTree/users/test_migrations.py @@ -0,0 +1,38 @@ +""" +Unit tests for the user model database migrations +""" + +from django_test_migrations.contrib.unittest_case import MigratorTestCase + +from InvenTree import helpers + + +class TestForwardMigrations(MigratorTestCase): + """ + Test entire schema migration sequence for the users app + """ + + migrate_from = ('users', helpers.getOldestMigrationFile('users')) + migrate_to = ('users', helpers.getNewestMigrationFile('users')) + + def prepare(self): + + User = self.old_state.apps.get_model('auth', 'user') + + User.objects.create( + username='fred', + email='fred@fred.com', + password='password' + ) + + User.objects.create( + username='brad', + email='brad@fred.com', + password='password' + ) + + def test_users_exist(self): + + User = self.new_state.apps.get_model('auth', 'user') + + self.assertEqual(User.objects.count(), 2) From 58c30f48d5b020c0c61a3fb5db134e11c75d55ce Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 30 Mar 2021 09:28:02 +1100 Subject: [PATCH 3/4] Remove extra whitespace --- InvenTree/users/test_migrations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/users/test_migrations.py b/InvenTree/users/test_migrations.py index 1f10d041c2..773368614a 100644 --- a/InvenTree/users/test_migrations.py +++ b/InvenTree/users/test_migrations.py @@ -35,4 +35,4 @@ class TestForwardMigrations(MigratorTestCase): User = self.new_state.apps.get_model('auth', 'user') - self.assertEqual(User.objects.count(), 2) + self.assertEqual(User.objects.count(), 2) From 1a288168b7cb9573e3446901d761374b8fddca0e Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 30 Mar 2021 10:00:43 +1100 Subject: [PATCH 4/4] PEP fixes --- InvenTree/users/test_migrations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/InvenTree/users/test_migrations.py b/InvenTree/users/test_migrations.py index 773368614a..7e4c24b2dc 100644 --- a/InvenTree/users/test_migrations.py +++ b/InvenTree/users/test_migrations.py @@ -35,4 +35,4 @@ class TestForwardMigrations(MigratorTestCase): User = self.new_state.apps.get_model('auth', 'user') - self.assertEqual(User.objects.count(), 2) + self.assertEqual(User.objects.count(), 2)