diff --git a/pytest.ini b/pytest.ini index 7a4df7b2..2c19a02d 100644 --- a/pytest.ini +++ b/pytest.ini @@ -13,6 +13,15 @@ # a stale artefact. testpaths = tests +# Parallel execution: auto-detect CPU cores and run tests in parallel +# Gives 4-8x speedup on modern machines (pytest-xdist required, already installed) +# Disable with: pytest -n0 +addopts = -n auto + +# Test markers +markers = + slow: marks tests as slow (deselect with '-m "not slow"') + # Belt and braces: even an explicit path or an IDE run must not descend into # build output or a staged copy of the tree. norecursedirs = diff --git a/shopdb/core/api/plugins.py b/shopdb/core/api/plugins.py index f15ed686..e8b62b01 100644 --- a/shopdb/core/api/plugins.py +++ b/shopdb/core/api/plugins.py @@ -57,7 +57,10 @@ def get_plugin_settings_routes(): return success_response({'routes': []}) routes = [] - for plugin in pm.get_enabled_plugin_instances(): + for plugin_name, plugin in pm.get_all_plugins().items(): + # Only include routes from enabled plugins + if not pm.registry.is_enabled(plugin_name): + continue if hasattr(plugin, 'get_settings_routes'): plugin_routes = plugin.get_settings_routes() if plugin_routes: