2
0

test_events.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """
  2. Test that nginx-proxy detects new containers
  3. """
  4. from time import sleep
  5. import pytest
  6. from docker.errors import NotFound
  7. @pytest.yield_fixture()
  8. def web1(docker_compose):
  9. """
  10. pytest fixture creating a web container with `VIRTUAL_HOST=web1.nginx-proxy` listening on port 81.
  11. """
  12. container = docker_compose.containers.run(
  13. name="web1",
  14. image="web",
  15. detach=True,
  16. environment={
  17. "WEB_PORTS": "81",
  18. "VIRTUAL_HOST": "web1.nginx-proxy"
  19. },
  20. ports={"81/tcp": None}
  21. )
  22. sleep(2) # give it some time to initialize and for docker-gen to detect it
  23. yield container
  24. try:
  25. docker_compose.containers.get("web1").remove(force=True)
  26. except NotFound:
  27. pass
  28. def test_nginx_proxy_behavior_when_alone(docker_compose, nginxproxy):
  29. r = nginxproxy.get("http://nginx-proxy/")
  30. assert r.status_code == 503
  31. def test_new_container_is_detected(web1, nginxproxy):
  32. r = nginxproxy.get("http://web1.nginx-proxy/port")
  33. assert r.status_code == 200
  34. assert "answer from port 81\n" == r.text
  35. web1.remove(force=True)
  36. sleep(2)
  37. r = nginxproxy.get("http://web1.nginx-proxy/port")
  38. assert r.status_code == 503