1
0
mirror of https://github.com/thib8956/nginx-proxy synced 2025-02-24 09:48:14 +00:00

test: paths are stripped from debug endpoint response if too long

This commit is contained in:
Nicolas Duchon 2024-11-02 17:14:34 +01:00
parent 190030745c
commit 9114b8047d
3 changed files with 42 additions and 9 deletions

View File

@ -2,23 +2,35 @@ import json
import pytest import pytest
def test_debug_endpoint_is_enabled_globally(docker_compose, nginxproxy): def test_debug_endpoint_is_enabled_globally(docker_compose, nginxproxy):
r = nginxproxy.get("http://enabled1.debug.nginx-proxy.example/nginx-proxy-debug") r = nginxproxy.get("http://enabled.debug.nginx-proxy.example/nginx-proxy-debug")
assert r.status_code == 200 assert r.status_code == 200
r = nginxproxy.get("http://enabled2.debug.nginx-proxy.example/nginx-proxy-debug") r = nginxproxy.get("http://stripped.debug.nginx-proxy.example/nginx-proxy-debug")
assert r.status_code == 200 assert r.status_code == 200
def test_debug_endpoint_response_contains_expected_values(docker_compose, nginxproxy): def test_debug_endpoint_response_contains_expected_values(docker_compose, nginxproxy):
r = nginxproxy.get("http://enabled1.debug.nginx-proxy.example/nginx-proxy-debug") r = nginxproxy.get("http://enabled.debug.nginx-proxy.example/nginx-proxy-debug")
assert r.status_code == 200 assert r.status_code == 200
try: try:
jsonResponse = json.loads(r.text) jsonResponse = json.loads(r.text)
except ValueError as err: except ValueError as err:
pytest.fail("Failed to parse JSON response: %s" % err, pytrace=False) pytest.fail("Failed to parse debug endpoint response as JSON: %s" % err, pytrace=False)
assert jsonResponse["global"]["enable_debug_endpoint"] == "true" assert jsonResponse["global"]["enable_debug_endpoint"] == "true"
assert jsonResponse["vhost"]["enable_debug_endpoint"] == True assert jsonResponse["vhost"]["enable_debug_endpoint"] == True
def test_debug_endpoint_pahts_stripped_if_response_too_long(docker_compose, nginxproxy):
r = nginxproxy.get("http://stripped.debug.nginx-proxy.example/nginx-proxy-debug")
assert r.status_code == 200
try:
jsonResponse = json.loads(r.text)
except ValueError as err:
pytest.fail("Failed to parse debug endpoint response as JSON: %s" % err, pytrace=False)
if "paths" in jsonResponse["vhost"]:
pytest.fail("Expected paths to be stripped from debug endpoint response", pytrace=False)
assert jsonResponse["warning"] == "Virtual paths configuration for this hostname is too large and has been stripped from response."
def test_debug_endpoint_is_disabled_per_container(docker_compose, nginxproxy): def test_debug_endpoint_is_disabled_per_container(docker_compose, nginxproxy):
r = nginxproxy.get("http://disabled.debug.nginx-proxy.example/nginx-proxy-debug") r = nginxproxy.get("http://disabled.debug.nginx-proxy.example/nginx-proxy-debug")
assert r.status_code == 404 assert r.status_code == 404

View File

@ -6,21 +6,42 @@ services:
environment: environment:
DEBUG_ENDPOINT: "true" DEBUG_ENDPOINT: "true"
debug_enabled1: debug_enabled:
image: web image: web
expose: expose:
- "81" - "81"
environment: environment:
WEB_PORTS: 81 WEB_PORTS: 81
VIRTUAL_HOST: enabled1.debug.nginx-proxy.example VIRTUAL_HOST: enabled.debug.nginx-proxy.example
debug_enabled2: debug_stripped:
image: web image: web
expose: expose:
- "82" - "82"
environment: environment:
WEB_PORTS: 82 WEB_PORTS: 82
VIRTUAL_HOST: enabled2.debug.nginx-proxy.example VIRTUAL_HOST_MULTIPORTS: |-
stripped.debug.nginx-proxy.example:
"/1":
"/2":
"/3":
"/4":
"/5":
"/6":
"/7":
"/8":
"/9":
"/10":
"/11":
"/12":
"/13":
"/14":
"/15":
"/16":
"/17":
"/18":
"/19":
"/20":
debug_disabled: debug_disabled:
image: web image: web

View File

@ -19,6 +19,6 @@ def test_debug_endpoint_response_contains_expected_values(docker_compose, nginxp
try: try:
jsonResponse = json.loads(r.text) jsonResponse = json.loads(r.text)
except ValueError as err: except ValueError as err:
pytest.fail("Failed to parse JSON response: %s" % err, pytrace=False) pytest.fail("Failed to parse debug endpoint response as JSON:: %s" % err, pytrace=False)
assert jsonResponse["global"]["enable_debug_endpoint"] == "false" assert jsonResponse["global"]["enable_debug_endpoint"] == "false"
assert jsonResponse["vhost"]["enable_debug_endpoint"] == True assert jsonResponse["vhost"]["enable_debug_endpoint"] == True