diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 40a8082f25..7db3d85628 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -55,7 +55,6 @@ def get_setting(environment_var, backup_val, default_value=None): # Determine if we are running in "test" mode e.g. "manage.py test" TESTING = 'test' in sys.argv -PLUGIN_TESTING = TESTING # used to forece enable everything plugin # New requirement for django 3.2+ DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' @@ -866,3 +865,7 @@ INTEGRATION_PLUGINS = {} INTEGRATION_PLUGINS_INACTIVE = {} INTEGRATION_PLUGIN_GLOBALSETTING = {} INTEGRATION_APPS_LOADED = False # Marks if apps were reloaded yet + +# Test settings +PLUGIN_TESTING = get_setting('PLUGIN_TESTING', TESTING) # used to force enable everything plugin +PLUGIN_TESTING_SETUP = get_setting('PLUGIN_TESTING_SETUP', False) diff --git a/InvenTree/plugin/apps.py b/InvenTree/plugin/apps.py index 5ba9719a41..d11e9034f8 100644 --- a/InvenTree/plugin/apps.py +++ b/InvenTree/plugin/apps.py @@ -42,11 +42,12 @@ class PluginAppConfig(AppConfig): if modules: [settings.PLUGINS.append(item) for item in modules] - # Collect plugins from setup entry points - for entry in metadata.entry_points().get('inventree_plugins', []): - plugin = entry.load() - plugin.is_package = True - settings.PLUGINS.append(plugin) + if (not settings.PLUGIN_TESTING) or (settings.PLUGIN_TESTING and settings.PLUGIN_TESTING_SETUP): + # Collect plugins from setup entry points + for entry in metadata.entry_points().get('inventree_plugins', []): + plugin = entry.load() + plugin.is_package = True + settings.PLUGINS.append(plugin) # Log found plugins logger.info(f'Found {len(settings.PLUGINS)} plugins!')