Allow running tests with multiple schedulers

The number of schedulers can be defined via the ZUUL_SCHEDULER_COUNT
environment variable (also forwarded by tox).

Disclaimer: running the tests with multiple schedulers will still fail
as not all test support multiple schedulers yet.

Change-Id: Ie11467dcf0fc36a5e167adcbd29ac4f256e0b3c5
This commit is contained in:
Simon Westphahl 2021-11-17 11:49:23 +01:00 committed by James E. Blair
parent d5efa36684
commit edb4985305
3 changed files with 6 additions and 1 deletions

View File

@ -130,6 +130,7 @@ import tests.fakegitlab
FIXTURE_DIR = os.path.join(os.path.dirname(__file__), 'fixtures')
KEEP_TEMPDIRS = bool(os.environ.get('KEEP_TEMPDIRS', False))
SCHEDULER_COUNT = int(os.environ.get('ZUUL_SCHEDULER_COUNT', 1))
def repack_repo(path):
@ -4488,6 +4489,7 @@ class ZuulTestCase(BaseTestCase):
git_url_with_auth: bool = False
log_console_port: int = 19885
validate_tenants = None
scheduler_count = SCHEDULER_COUNT
def __getattr__(self, name):
"""Allows to access fake connections the old way, e.g., using
@ -4665,7 +4667,8 @@ class ZuulTestCase(BaseTestCase):
self.builds = self.executor_server.running_builds
self.scheds = SchedulerTestManager(self.validate_tenants)
self.createScheduler()
for _ in range(self.scheduler_count):
self.createScheduler()
self.merge_server = None

View File

@ -954,6 +954,7 @@ class TestTenantExtra(TenantParserTestCase):
class TestTenantDuplicate(TenantParserTestCase):
tenant_config_file = 'config/tenant-parser/duplicate.yaml'
scheduler_count = 1
def setUp(self):
with testtools.ExpectedException(Exception, 'Duplicate configuration'):

View File

@ -28,6 +28,7 @@ passenv =
YARN_REGISTRY
ZUUL_MYSQL_HOST
ZUUL_POSTGRES_HOST
ZUUL_SCHEDULER_COUNT
ZUUL_TEST_ROOT
ZUUL_ZK_HOST
ZUUL_ZK_CA