diff --git a/apps/api/karrio/server/settings/base.py b/apps/api/karrio/server/settings/base.py index ce8784434..84377e0e0 100644 --- a/apps/api/karrio/server/settings/base.py +++ b/apps/api/karrio/server/settings/base.py @@ -374,13 +374,7 @@ } } -# Speed up test suite: use fast MD5 hasher instead of bcrypt/PBKDF2 -# This only applies when running `manage.py test` — production is unaffected -import sys as _sys -if "test" in _sys.argv or "karrio" in _sys.argv[0]: - PASSWORD_HASHERS = [ - "django.contrib.auth.hashers.MD5PasswordHasher", - ] +TEST_RUNNER = "karrio.server.test_runner.KarrioTestRunner" if config("DATABASE_URL", default=None): db_from_env = dj_database_url.config( diff --git a/apps/api/karrio/server/test_runner.py b/apps/api/karrio/server/test_runner.py new file mode 100644 index 000000000..bdf371f0d --- /dev/null +++ b/apps/api/karrio/server/test_runner.py @@ -0,0 +1,13 @@ +from django.conf import settings +from django.test.runner import DiscoverRunner + + +class KarrioTestRunner(DiscoverRunner): + """Custom Django test runner that overrides settings for the test suite.""" + + def setup_test_environment(self, **kwargs): + super().setup_test_environment(**kwargs) + # Speed up tests with a fast hasher (PBKDF2 is intentionally slow). + settings.PASSWORD_HASHERS = [ + "django.contrib.auth.hashers.MD5PasswordHasher", + ]