Bläddra i källkod

tests: certificate selection

Nicolas Duchon 6 månader sedan
förälder
incheckning
30299e69bc
2 ändrade filer med 58 tillägg och 0 borttagningar
  1. 25 0
      test/test_ssl/test_cert_selection.py
  2. 33 0
      test/test_ssl/test_cert_selection.yml

+ 25 - 0
test/test_ssl/test_cert_selection.py

@@ -0,0 +1,25 @@
+import json
+import pytest
+
+
+@pytest.mark.parametrize("host,expected_cert_ok,expected_cert", [
+    ("nginx-proxy.tld", True, "nginx-proxy.tld"),
+    ("web1.nginx-proxy.tld", True, "nginx-proxy.tld"),
+    ("sub.web1.nginx-proxy.tld", False, ""),
+    ("web2.nginx-proxy.tld", True, "web2.nginx-proxy.tld"),
+])
+def test_certificate_selection(
+    docker_compose,
+    nginxproxy,
+    host: str,
+    expected_cert_ok: bool,
+    expected_cert: str,
+):
+    r = nginxproxy.get(f"http://{host}/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)
+    assert jsonResponse["vhost"]["cert_ok"] == expected_cert_ok
+    assert jsonResponse["vhost"]["cert"] == expected_cert

+ 33 - 0
test/test_ssl/test_cert_selection.yml

@@ -0,0 +1,33 @@
+services:
+  base:
+      image: web
+      environment:
+        WEB_PORTS: "80"
+        VIRTUAL_HOST: "nginx-proxy.tld"
+
+  web1:
+      image: web
+      environment:
+        WEB_PORTS: "80"
+        VIRTUAL_HOST: "web1.nginx-proxy.tld"
+  
+  sub-web1:
+      image: web
+      environment:
+        WEB_PORTS: "80"
+        VIRTUAL_HOST: "sub.web1.nginx-proxy.tld"
+
+  web2:
+      image: web
+      environment:
+        WEB_PORTS: "80"
+        VIRTUAL_HOST: "web2.nginx-proxy.tld"
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro
+      - ./certs:/etc/nginx/certs:ro
+      - ./acme_root:/usr/share/nginx/html:ro
+    environment:
+      DEBUG_ENDPOINT: "true"