diff --git a/tests_integration/run.py b/tests_integration/run.py index cd2c4ed..2b3a089 100644 --- a/tests_integration/run.py +++ b/tests_integration/run.py @@ -5,22 +5,38 @@ import os import sys -print("Building and running integration tests...") -print("Building Spoolman...") -os.system("docker build -t donkie/spoolman:test .") -print("Building Spoolman tester...") -os.system("docker build -t donkie/spoolman-tester:latest tests_integration") +if __name__ == "__main__": + print("Building and running integration tests...") + print("Building Spoolman...") + os.system("docker build -t donkie/spoolman:test .") + print("Building Spoolman tester...") + os.system("docker build -t donkie/spoolman-tester:latest tests_integration") -targets = [ - "postgres", - "sqlite", - "mariadb", - "cockroachdb", -] + # Support input arguments for running only specific tests + if len(sys.argv) > 1: + targets = sys.argv[1:] + # Check that all targets are valid + for target in targets: + if target not in ["postgres", "sqlite", "mariadb", "cockroachdb"]: + print(f"Unknown target: {target}") + sys.exit(1) + else: + print("No targets specified, running all tests...") + targets = [ + "postgres", + "sqlite", + "mariadb", + "cockroachdb", + ] -for target in targets: - print(f"Running integration tests against {target}...") - os.system(f"docker-compose -f tests_integration/docker-compose-{target}.yml down -v") - if os.system(f"docker-compose -f tests_integration/docker-compose-{target}.yml up --abort-on-container-exit") > 0: - print(f"Integration tests against {target} failed!") - sys.exit(1) + for target in targets: + print(f"Running integration tests against {target}...") + os.system(f"docker-compose -f tests_integration/docker-compose-{target}.yml down -v") + if ( + os.system(f"docker-compose -f tests_integration/docker-compose-{target}.yml up --abort-on-container-exit") + > 0 + ): + print(f"Integration tests against {target} failed!") + sys.exit(1) + + print("Integration tests passed!")