diff --git a/readme.md b/readme.md index bcc9733c9..349cf8bff 100644 --- a/readme.md +++ b/readme.md @@ -24,6 +24,4 @@ docker-compose up # Run the E2E tests: -(after `docker-compose up`) -`docker exec themotte bash -c "cd service && python3 -m pytest -s"` - +`./run_tests.py` diff --git a/run_tests.py b/run_tests.py new file mode 100755 index 000000000..1cabb5029 --- /dev/null +++ b/run_tests.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 + +import subprocess +import sys + +# we want to leave the container in whatever state it currently is, so check to see if it's running +docker_inspect = subprocess.run([ + "docker", + "container", + "inspect", + "-f", "{{.State.Status}}", + "themotte", + ], + capture_output = True, + ).stdout.decode("utf-8").strip() + +was_running = docker_inspect == "running" + +# update containers, just in case they're out of date +if was_running: + print("Updating containers . . .") +else: + print("Starting containers . . .") +subprocess.run([ + "docker-compose", + "up", + "--build", + "-d", + ], + check = True, + ) + +# run the test +print("Running test . . .") +result = subprocess.run([ + "docker", + "exec", + "themotte", + "bash", "-c", "cd service && python3 -m pytest -s" + ]) + +if not was_running: + # shut down, if we weren't running in the first place + print("Shutting down containers . . .") + subprocess.run([ + "docker-compose", + "stop", + ], + check = True, + ) + +sys.exit(result.returncode)