test_dockergen_v2.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import os
  2. import docker
  3. import logging
  4. import pytest
  5. @pytest.fixture(scope="module")
  6. def nginx_tmpl():
  7. """
  8. pytest fixture which extracts the the nginx config template from
  9. the nginxproxy/nginx-proxy:test image
  10. """
  11. script_dir = os.path.dirname(__file__)
  12. logging.info("extracting nginx.tmpl from nginxproxy/nginx-proxy:test")
  13. docker_client = docker.from_env()
  14. print(
  15. docker_client.containers.run(
  16. image="nginxproxy/nginx-proxy:test",
  17. remove=True,
  18. volumes=["{current_dir}:{current_dir}".format(current_dir=script_dir)],
  19. entrypoint="sh",
  20. command='-xc "cp /app/nginx.tmpl {current_dir} && chmod 777 {current_dir}/nginx.tmpl"'.format(
  21. current_dir=script_dir
  22. ),
  23. stderr=True,
  24. )
  25. )
  26. yield
  27. logging.info("removing nginx.tmpl")
  28. os.remove(os.path.join(script_dir, "nginx.tmpl"))
  29. def test_unknown_virtual_host_is_503(nginx_tmpl, docker_compose, nginxproxy):
  30. r = nginxproxy.get("http://unknown.nginx.container.docker/")
  31. assert r.status_code == 503
  32. def test_forwards_to_whoami(nginx_tmpl, docker_compose, nginxproxy):
  33. r = nginxproxy.get("http://whoami.nginx.container.docker/")
  34. assert r.status_code == 200
  35. whoami_container = docker_compose.containers.get("whoami")
  36. assert r.text == "I'm %s\n" % whoami_container.id[:12]