def run_docker_dev_test(path, coverage=False):
"""
Method to check that docker runs with dev.yml
"""
try:
# build django, power up the stack and run the test
sh.docker_compose(
"--file", "{}/dev.yml".format(path), "build", "django"
)
sh.docker_compose("--file", "{}/dev.yml".format(path), "build")
if coverage:
sh.docker_compose(
"--file", "{}/dev.yml".format(path), "run", "django", "coverage", "run", "manage.py", "test"
)
sh.docker_compose(
"--file", "{}/dev.yml".format(path), "run", "django", "coverage", "xml", "-o", "coverage.xml"
)
shutil.copyfile(os.path.join(str(path), ".coverage"), os.path.join(PROJECT_DIR, ".coverage"))
shutil.copyfile(os.path.join(str(path), "coverage.xml"),
os.path.join(PROJECT_DIR, "coverage.xml"))
else:
sh.docker_compose(
"--file", "{}/dev.yml".format(path), "run", "django", "python", "manage.py", "test"
)
# test that the development server is running
sh.docker_compose("--file", "{}/dev.yml".format(path), "up", "-d")
time.sleep(10)
curl = sh.curl("-I", "http://localhost:8000/")
assert "200 OK" in curl
assert "Server: Werkzeug" in curl
# since we are running a lot of tests with different configurations,
# we need to clean up the environment. Stop all running containers,
# remove them and remove the postgres_data volume.
sh.docker_compose("--file", "{}/dev.yml".format(path), "stop")
sh.docker_compose("--file", "{}/dev.yml".format(path), "rm", "-f")
sh.docker("volume", "rm", "cookiecuttersaastestproject_postgres_data_dev")
except sh.ErrorReturnCode as e:
# in case there are errors it's good to have full output of
# stdout and stderr.
pytest.fail("STDOUT: {} \n\n\n STDERR: {}".format(
e.stdout.decode("utf-8"), e.stderr.decode("utf-8"))
)
test_cookiecutter_generation.py 文件源码
python
阅读 17
收藏 0
点赞 0
评论 0
评论列表
文章目录