forked from pool/python-sortinghat
62 lines
2.4 KiB
Diff
62 lines
2.4 KiB
Diff
|
Index: grimoirelab-sortinghat-1.7.1/tests/runners.py
|
||
|
===================================================================
|
||
|
--- grimoirelab-sortinghat-1.7.1.orig/tests/runners.py
|
||
|
+++ grimoirelab-sortinghat-1.7.1/tests/runners.py
|
||
|
@@ -18,54 +18,22 @@
|
||
|
|
||
|
from django.conf import settings
|
||
|
from django.test.runner import DiscoverRunner
|
||
|
-from testcontainers.mysql import MySqlContainer
|
||
|
from unittest.suite import TestSuite
|
||
|
|
||
|
|
||
|
-class TestContainersRunner(DiscoverRunner):
|
||
|
- _mysql_container: MySqlContainer = None
|
||
|
-
|
||
|
- def __init__(self, *args, **kwargs):
|
||
|
- super().__init__(*args, **kwargs)
|
||
|
-
|
||
|
- db_image = getattr(settings, "TEST_DATABASE_IMAGE", "mariadb:latest")
|
||
|
-
|
||
|
- self._mysql_container = MySqlContainer(image=db_image,
|
||
|
- root_password="root")
|
||
|
-
|
||
|
- def _setup_container(self):
|
||
|
- self._mysql_container.start()
|
||
|
-
|
||
|
- for database in settings.DATABASES:
|
||
|
- settings.DATABASES[database]["HOST"] = "127.0.0.1"
|
||
|
- settings.DATABASES[database]["PORT"] = self._mysql_container.get_exposed_port(3306)
|
||
|
- settings.DATABASES[database]["USER"] = "root"
|
||
|
- settings.DATABASES[database]["PASSWORD"] = self._mysql_container.root_password
|
||
|
-
|
||
|
- def _teardown_container(self):
|
||
|
- self._mysql_container.stop()
|
||
|
-
|
||
|
- def setup_databases(self, **kwargs):
|
||
|
- self._setup_container()
|
||
|
- return super().setup_databases(**kwargs)
|
||
|
-
|
||
|
- def teardown_databases(self, old_config, **kwargs):
|
||
|
- super().teardown_databases(old_config, **kwargs)
|
||
|
- self._teardown_container()
|
||
|
-
|
||
|
|
||
|
def from_tenant_module(test):
|
||
|
return test.__module__.startswith('tests.tenants')
|
||
|
|
||
|
|
||
|
-class SkipMultiTenantTestRunner(TestContainersRunner):
|
||
|
+class SkipMultiTenantTestRunner(DiscoverRunner):
|
||
|
def build_suite(self, test_labels=None, extra_tests=None, **kwargs):
|
||
|
suite = super().build_suite(test_labels=test_labels, extra_tests=extra_tests, **kwargs)
|
||
|
tests = [t for t in suite._tests if not from_tenant_module(t)]
|
||
|
return TestSuite(tests=tests)
|
||
|
|
||
|
|
||
|
-class OnlyMultiTenantTestRunner(TestContainersRunner):
|
||
|
+class OnlyMultiTenantTestRunner(DiscoverRunner):
|
||
|
def build_suite(self, test_labels=None, extra_tests=None, **kwargs):
|
||
|
suite = super().build_suite(test_labels=test_labels, extra_tests=extra_tests, **kwargs)
|
||
|
tests = [t for t in suite._tests if from_tenant_module(t)]
|