diff options
Diffstat (limited to 'test/py')
-rw-r--r-- | test/py/test_basic.py | 37 | ||||
-rw-r--r-- | test/py/test_repo.py | 47 |
2 files changed, 47 insertions, 37 deletions
diff --git a/test/py/test_basic.py b/test/py/test_basic.py index e8a00e1..c34f9ef 100644 --- a/test/py/test_basic.py +++ b/test/py/test_basic.py @@ -3,10 +3,6 @@ # For details, see https://github.com/egor-tensin/cimple. # Distributed under the MIT License. -import pytest - -from lib.process import LoggingEvent - def test_server_and_workers_run(server_and_workers): pass @@ -15,36 +11,3 @@ def test_server_and_workers_run(server_and_workers): def test_client_version(client, version): output = client.run('--version') assert output.endswith(version + '\n') - - -class LoggingEventRunComplete(LoggingEvent): - def __init__(self, target): - self.counter = 0 - self.target = target - super().__init__(timeout=60) - - def log_line_matches(self, line): - return 'Received a "run complete" message from worker' in line - - def set(self): - self.counter += 1 - if self.counter == self.target: - super().set() - - -def _test_repo_internal(server_and_workers, test_repo, client, numof_runs): - server, workers = server_and_workers - event = LoggingEventRunComplete(numof_runs) - server.logger.add_event(event) - for i in range(numof_runs): - client.run('run', test_repo.path, 'HEAD') - event.wait() - assert numof_runs == test_repo.count_ci_output_files() - - -def test_repo(server_and_workers, test_repo, client): - _test_repo_internal(server_and_workers, test_repo, client, 1) - - -def test_repo_10(server_and_workers, test_repo, client): - _test_repo_internal(server_and_workers, test_repo, client, 10) diff --git a/test/py/test_repo.py b/test/py/test_repo.py new file mode 100644 index 0000000..f3a10d7 --- /dev/null +++ b/test/py/test_repo.py @@ -0,0 +1,47 @@ +# Copyright (c) 2023 Egor Tensin <Egor.Tensin@gmail.com> +# This file is part of the "cimple" project. +# For details, see https://github.com/egor-tensin/cimple. +# Distributed under the MIT License. + +from lib.process import LoggingEvent + + +class LoggingEventRunComplete(LoggingEvent): + def __init__(self, target): + self.counter = 0 + self.target = target + super().__init__(timeout=60) + + def log_line_matches(self, line): + return 'Received a "run complete" message from worker' in line + + def set(self): + self.counter += 1 + if self.counter == self.target: + super().set() + + +def _test_repo_internal(server_and_workers, test_repo, client, numof_runs): + server, workers = server_and_workers + + event = LoggingEventRunComplete(numof_runs) + # Count the number of times the server receives the "run complete" message. + server.logger.add_event(event) + + for i in range(numof_runs): + client.run('run', test_repo.path, 'HEAD') + + event.wait() + assert numof_runs == test_repo.count_ci_output_files() + + +def test_repo(server_and_workers, test_repo, client): + _test_repo_internal(server_and_workers, test_repo, client, 1) + + +def test_repo_2(server_and_workers, test_repo, client): + _test_repo_internal(server_and_workers, test_repo, client, 2) + + +def test_repo_10(server_and_workers, test_repo, client): + _test_repo_internal(server_and_workers, test_repo, client, 10) |