diff --git a/InvenTree/common/notifications.py b/InvenTree/common/notifications.py index a7177c9da5..083cbba5e1 100644 --- a/InvenTree/common/notifications.py +++ b/InvenTree/common/notifications.py @@ -131,8 +131,13 @@ class MethodStorageClass: liste = None user_settings = {} - def collect(self): - storage.liste = inheritors(NotificationMethod) - IGNORED_NOTIFICATION_CLS + def collect(self, selected_classes=None): + current_method = inheritors(NotificationMethod) - IGNORED_NOTIFICATION_CLS + + # for testing selective loading is made available + if selected_classes: + current_method = [item for item in current_method if item is selected_classes] + storage.liste = current_method def get_usersettings(self, user): methods = [] diff --git a/InvenTree/common/test_notifications.py b/InvenTree/common/test_notifications.py index a436b99da3..30d4713a3e 100644 --- a/InvenTree/common/test_notifications.py +++ b/InvenTree/common/test_notifications.py @@ -95,7 +95,7 @@ class BulkNotificationMethodTests(BaseNotificationIntegrationTest): return [1, ] with self.assertRaises(NotImplementedError): - self._notification_run() + self._notification_run(WrongImplementation) class SingleNotificationMethodTests(BaseNotificationIntegrationTest): @@ -113,6 +113,6 @@ class SingleNotificationMethodTests(BaseNotificationIntegrationTest): return [1, ] with self.assertRaises(NotImplementedError): - self._notification_run() + self._notification_run(WrongImplementation) # A integration test for notifications is provided in test_part.PartNotificationTest diff --git a/InvenTree/part/test_part.py b/InvenTree/part/test_part.py index 5e5c84c3ea..7ceeed8f01 100644 --- a/InvenTree/part/test_part.py +++ b/InvenTree/part/test_part.py @@ -494,9 +494,13 @@ class BaseNotificationIntegrationTest(TestCase): # Define part that will be tested self.part = Part.objects.get(name='R_2K2_0805') - def _notification_run(self): + def _notification_run(self, run_class=None): + """ + Run a notification test suit through. + If you only want to test one class pass it to run_class + """ # reload notification methods - storage.collect() + storage.collect(run_class) # There should be no notification runs self.assertEqual(NotificationEntry.objects.all().count(), 0)