Ver Fonte

test: json syntax for multiports variable

Nicolas Duchon há 1 ano atrás
pai
commit
d80ca7ec36

+ 0 - 0
test/test_multiports/test_multiports-base.py → test/test_multiports/test_multiports-base-json.py


+ 77 - 0
test/test_multiports/test_multiports-base-json.yml

@@ -0,0 +1,77 @@
+version: "2"
+
+services:
+  skipvirtualhost:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: skipped.nginx-proxy.tld
+      VIRTUAL_HOST_MULTIPORTS: |-
+        {
+          "notskipped.nginx-proxy.tld": {}
+        }
+
+  defaultport:
+    image: web
+    expose:
+      - "80"
+      - "8080"
+    environment:
+      WEB_PORTS: "80 8080"
+      VIRTUAL_HOST_MULTIPORTS: |-
+        {
+          "port80.a.nginx-proxy.tld": {},
+          "port80.b.nginx-proxy.tld": {},
+          "port80.c.nginx-proxy.tld": {
+            "/": {}
+          }
+        }
+
+  multiports:
+    image: web
+    expose:
+      - "8080"
+      - "9000"
+    environment:
+      WEB_PORTS: "8080 9000"
+      VIRTUAL_HOST_MULTIPORTS: |-
+        {
+          "port8080.nginx-proxy.tld": {
+            "/": {
+              "port": 8080
+            }
+          },
+          "port9000.nginx-proxy.tld": {
+            "/": {
+              "port": 9000
+            }
+          }
+        }
+  
+  virtualpath:
+    image: web
+    expose:
+      - "10001"
+      - "10002"
+    environment:
+      WEB_PORTS: "10001 10002"
+      VIRTUAL_HOST_MULTIPORTS: |-
+        {
+          "virtualpaths.nginx-proxy.tld": {
+            "/rootdest": {
+              "port": 10001,
+              "dest": "/"
+            },
+            "/customdest": {
+              "port": 10002,
+              "dest": "/port"
+            }
+          }
+        }
+
+  sut:
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 39 - 0
test/test_multiports/test_multiports-base-yaml.py

@@ -0,0 +1,39 @@
+import pytest
+
+
+def test_virtual_host_is_dropped_when_using_multiports(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://notskipped.nginx-proxy.tld/port")
+    assert r.status_code == 200
+    assert "answer from port 81\n" in r.text
+    r = nginxproxy.get("http://skipped.nginx-proxy.tld/")
+    assert r.status_code == 503
+
+
+def test_answer_is_served_from_port_80_by_default(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://port80.a.nginx-proxy.tld/port")
+    assert r.status_code == 200
+    assert "answer from port 80\n" in r.text
+    r = nginxproxy.get("http://port80.b.nginx-proxy.tld/port")
+    assert r.status_code == 200
+    assert "answer from port 80\n" in r.text
+    r = nginxproxy.get("http://port80.c.nginx-proxy.tld/port")
+    assert r.status_code == 200
+    assert "answer from port 80\n" in r.text
+
+
+def test_answer_is_served_from_chosen_ports(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://port8080.nginx-proxy.tld/port")
+    assert r.status_code == 200
+    assert "answer from port 8080\n" in r.text
+    r = nginxproxy.get("http://port9000.nginx-proxy.tld/port")
+    assert r.status_code == 200
+    assert "answer from port 9000\n" in r.text
+
+
+def test_answer_is_served_from_chosen_ports_and_dest(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://virtualpaths.nginx-proxy.tld/rootdest/port")
+    assert r.status_code == 200
+    assert "answer from port 10001\n" in r.text
+    r = nginxproxy.get("http://virtualpaths.nginx-proxy.tld/customdest")
+    assert r.status_code == 200
+    assert "answer from port 10002\n" in r.text

+ 0 - 0
test/test_multiports/test_multiports-base.yml → test/test_multiports/test_multiports-base-yaml.yml