From 01c37c6c6c0556e6b62662155b30a7bca9767b55 Mon Sep 17 00:00:00 2001 From: Alexey Masterov Date: Tue, 10 Sep 2024 12:04:15 +0200 Subject: [PATCH] Refactor, delete roles accidentally left into a project --- .../cloud_regress/test_cloud_regress.py | 82 +++++++++++-------- 1 file changed, 47 insertions(+), 35 deletions(-) diff --git a/test_runner/cloud_regress/test_cloud_regress.py b/test_runner/cloud_regress/test_cloud_regress.py index 451ac1b5eeb3..06778abe2fd9 100644 --- a/test_runner/cloud_regress/test_cloud_regress.py +++ b/test_runner/cloud_regress/test_cloud_regress.py @@ -11,17 +11,10 @@ from fixtures.pg_version import PgVersion -@pytest.mark.timeout(7200) -@pytest.mark.remote_cluster -def test_cloud_regress( - remote_pg: RemotePostgres, - pg_version: PgVersion, - pg_distrib_dir: Path, - base_dir: Path, - test_output_dir: Path, -): +@pytest.fixture +def setup(remote_pg: RemotePostgres): """ - Run the regression tests + Setup and teardown of the tests """ with psycopg2.connect(remote_pg.connstr()) as conn: with conn.cursor() as cur: @@ -59,30 +52,49 @@ def test_cloud_regress( "RETURNS int AS 'regress.so' LANGUAGE C STRICT STABLE PARALLEL SAFE;" ) conn.rollback() - regress_bin = ( - pg_distrib_dir - / f"{pg_version.v_prefixed}/lib/postgresql/pgxs/src/test/regress/pg_regress" + yield + cur.execute( + "SELECT rolname FROM pg_catalog.pg_roles WHERE oid > 16384 AND rolname <> 'neondb_owner'" ) - test_path = base_dir / f"vendor/postgres-{pg_version.v_prefixed}/src/test/regress" + for role in cur: + cur.execute(f"DROP ROLE {role[0]}") + conn.commit() + + +@pytest.mark.timeout(7200) +@pytest.mark.remote_cluster +def test_cloud_regress( + setup, + remote_pg: RemotePostgres, + pg_version: PgVersion, + pg_distrib_dir: Path, + base_dir: Path, + test_output_dir: Path, +): + """ + Run the regression tests + """ + regress_bin = ( + pg_distrib_dir / f"{pg_version.v_prefixed}/lib/postgresql/pgxs/src/test/regress/pg_regress" + ) + test_path = base_dir / f"vendor/postgres-{pg_version.v_prefixed}/src/test/regress" - env_vars = { - "PGHOST": remote_pg.default_options["host"], - "PGPORT": str( - remote_pg.default_options["port"] - if "port" in remote_pg.default_options - else 5432 - ), - "PGUSER": remote_pg.default_options["user"], - "PGPASSWORD": remote_pg.default_options["password"], - "PGDATABASE": remote_pg.default_options["dbname"], - } - regress_cmd = [ - str(regress_bin), - f"--inputdir={test_path}", - f"--bindir={pg_distrib_dir}/{pg_version.v_prefixed}/bin", - "--dlpath=/usr/local/lib", - "--max-concurrent-tests=20", - f"--schedule={test_path}/parallel_schedule", - "--max-connections=5", - ] - remote_pg.pg_bin.run(regress_cmd, env=env_vars, cwd=test_output_dir) + env_vars = { + "PGHOST": remote_pg.default_options["host"], + "PGPORT": str( + remote_pg.default_options["port"] if "port" in remote_pg.default_options else 5432 + ), + "PGUSER": remote_pg.default_options["user"], + "PGPASSWORD": remote_pg.default_options["password"], + "PGDATABASE": remote_pg.default_options["dbname"], + } + regress_cmd = [ + str(regress_bin), + f"--inputdir={test_path}", + f"--bindir={pg_distrib_dir}/{pg_version.v_prefixed}/bin", + "--dlpath=/usr/local/lib", + "--max-concurrent-tests=20", + f"--schedule={test_path}/parallel_schedule", + "--max-connections=5", + ] + remote_pg.pg_bin.run(regress_cmd, env=env_vars, cwd=test_output_dir)