2
0

test_global.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import json
  2. import pytest
  3. def test_debug_endpoint_is_enabled_globally(docker_compose, nginxproxy):
  4. r = nginxproxy.get("http://enabled.debug.nginx-proxy.example/nginx-proxy-debug")
  5. assert r.status_code == 200
  6. r = nginxproxy.get("http://stripped.debug.nginx-proxy.example/nginx-proxy-debug")
  7. assert r.status_code == 200
  8. def test_debug_endpoint_response_contains_expected_values(docker_compose, nginxproxy):
  9. r = nginxproxy.get("http://enabled.debug.nginx-proxy.example/nginx-proxy-debug")
  10. assert r.status_code == 200
  11. try:
  12. json_response = json.loads(r.text)
  13. assert json_response["global"]["enable_debug_endpoint"] == "true"
  14. assert json_response["vhost"]["enable_debug_endpoint"] == True
  15. except ValueError as err:
  16. pytest.fail("Failed to parse debug endpoint response as JSON: %s" % err, pytrace=False)
  17. def test_debug_endpoint_paths_stripped_if_response_too_long(docker_compose, nginxproxy):
  18. r = nginxproxy.get("http://stripped.debug.nginx-proxy.example/nginx-proxy-debug")
  19. assert r.status_code == 200
  20. try:
  21. json_response = json.loads(r.text)
  22. if "paths" in json_response["vhost"]:
  23. pytest.fail("Expected paths to be stripped from debug endpoint response", pytrace=False)
  24. assert json_response[
  25. "warning"] == "Virtual paths configuration for this hostname is too large and has been stripped from response."
  26. except ValueError as err:
  27. pytest.fail("Failed to parse debug endpoint response as JSON: %s" % err, pytrace=False)
  28. def test_debug_endpoint_hostname_replaced_by_warning_if_regexp(docker_compose, nginxproxy):
  29. r = nginxproxy.get("http://regexp.foo.debug.nginx-proxy.example/nginx-proxy-debug")
  30. assert r.status_code == 200
  31. try:
  32. json_response = json.loads(r.text)
  33. assert json_response["vhost"]["hostname"] == "Hostname is a regexp and unsafe to include in the debug response."
  34. except ValueError as err:
  35. pytest.fail("Failed to parse debug endpoint response as JSON: %s" % err, pytrace=False)
  36. def test_debug_endpoint_is_disabled_per_container(docker_compose, nginxproxy):
  37. r = nginxproxy.get("http://disabled.debug.nginx-proxy.example/nginx-proxy-debug", expected_status_code=404)
  38. assert r.status_code == 404