aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2023-07-08 01:40:10 +0200
committerEgor Tensin <Egor.Tensin@gmail.com>2023-07-08 01:40:10 +0200
commit7bf0ec6bc417da77a8d45ab91b5522c96a25e273 (patch)
tree0a4a230d3509e01183f7ca67aac07ed0567b0994
parenttest: verify that added runs are in the database (diff)
downloadcimple-7bf0ec6bc417da77a8d45ab91b5522c96a25e273.tar.gz
cimple-7bf0ec6bc417da77a8d45ab91b5522c96a25e273.zip
test: refactoring
-rw-r--r--test/py/conftest.py22
-rw-r--r--test/py/test_basic.py2
-rw-r--r--test/py/test_repo.py32
3 files changed, 31 insertions, 25 deletions
diff --git a/test/py/conftest.py b/test/py/conftest.py
index ead09d1..a92699d 100644
--- a/test/py/conftest.py
+++ b/test/py/conftest.py
@@ -119,6 +119,11 @@ def sqlite_path(tmp_path):
return os.path.join(tmp_path, 'cimple.sqlite')
+@fixture
+def sqlite_db(server, sqlite_path):
+ return Database(sqlite_path)
+
+
class CmdLineServer(CmdLine):
def log_line_means_process_ready(self, line):
return line.endswith('Waiting for new connections')
@@ -179,11 +184,6 @@ def workers(worker_cmd):
@fixture
-def server_and_workers(server, workers):
- yield server, workers
-
-
-@fixture
def client(client_cmd):
return client_cmd
@@ -193,6 +193,14 @@ def test_repo(tmp_path):
return TestRepo(tmp_path)
+class Env:
+ def __init__(self, server, workers, client, db):
+ self.server = server
+ self.workers = workers
+ self.client = client
+ self.db = db
+
+
@fixture
-def sqlite_db(server, sqlite_path):
- return Database(sqlite_path)
+def env(server, workers, client, sqlite_db):
+ return Env(server, workers, client, sqlite_db)
diff --git a/test/py/test_basic.py b/test/py/test_basic.py
index 9737552..7ac038c 100644
--- a/test/py/test_basic.py
+++ b/test/py/test_basic.py
@@ -65,5 +65,5 @@ def test_run_noop_server(server):
pass
-def test_run_noop_server_and_workers(server_and_workers):
+def test_run_noop_server_and_workers(server, workers):
pass
diff --git a/test/py/test_repo.py b/test/py/test_repo.py
index 1cc1434..c6cd6a2 100644
--- a/test/py/test_repo.py
+++ b/test/py/test_repo.py
@@ -27,18 +27,16 @@ class LoggingEventRunComplete(LoggingEvent):
super().set()
-def _test_repo_internal(server_and_workers, test_repo, client, numof_processes, runs_per_process, db):
+def _test_repo_internal(env, repo, numof_processes, runs_per_process):
numof_runs = numof_processes * runs_per_process
- 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)
+ env.server.logger.add_event(event)
def client_runner():
for i in range(runs_per_process):
- client.run('run', test_repo.path, 'HEAD')
+ env.client.run('run', repo.path, 'HEAD')
processes = [Process(target=client_runner) for i in range(numof_processes)]
for proc in processes:
@@ -47,32 +45,32 @@ def _test_repo_internal(server_and_workers, test_repo, client, numof_processes,
proc.join()
event.wait()
- assert numof_runs == test_repo.count_ci_output_files()
+ assert numof_runs == repo.count_ci_output_files()
- runs = db.get_all_runs()
+ runs = env.db.get_all_runs()
assert numof_runs == len(runs)
for id, status, ec, output, url, rev in runs:
assert status == 'finished', f'Invalid status for run {id}: {status}'
-def test_repo_1_client_1_run(server_and_workers, test_repo, client, sqlite_db):
- _test_repo_internal(server_and_workers, test_repo, client, 1, 1, sqlite_db)
+def test_repo_1_client_1_run(env, test_repo):
+ _test_repo_internal(env, test_repo, 1, 1)
-def test_repo_1_client_2_runs(server_and_workers, test_repo, client, sqlite_db):
- _test_repo_internal(server_and_workers, test_repo, client, 1, 2, sqlite_db)
+def test_repo_1_client_2_runs(env, test_repo):
+ _test_repo_internal(env, test_repo, 1, 2)
-def test_repo_1_client_10_runs(server_and_workers, test_repo, client, sqlite_db):
- _test_repo_internal(server_and_workers, test_repo, client, 1, 10, sqlite_db)
+def test_repo_1_client_10_runs(env, test_repo):
+ _test_repo_internal(env, test_repo, 1, 10)
@pytest.mark.stress
-def test_repo_1_client_2000_runs(server_and_workers, test_repo, client, sqlite_db):
- _test_repo_internal(server_and_workers, test_repo, client, 1, 2000, sqlite_db)
+def test_repo_1_client_2000_runs(env, test_repo):
+ _test_repo_internal(env, test_repo, 1, 2000)
@pytest.mark.stress
-def test_repo_4_clients_500_runs(server_and_workers, test_repo, client, sqlite_db):
- _test_repo_internal(server_and_workers, test_repo, client, 4, 500, sqlite_db)
+def test_repo_4_clients_500_runs(env, test_repo):
+ _test_repo_internal(env, test_repo, 4, 500)