Przeglądaj źródła

test: separate containers (contd)

Nicolas Duchon 5 miesięcy temu
rodzic
commit
7acf4780d5

+ 0 - 8
test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.py

@@ -1,8 +0,0 @@
-import pytest
-import re
-
-
-def test_answer_is_served_from_virtual_port_which_is_ureachable(docker_compose, nginxproxy):
-    r = nginxproxy.get("http://web.nginx-proxy.tld/port")
-    assert r.status_code == 502
-    assert re.search(r"\n\s+server \d+\.\d+\.\d+\.\d+:90;\n", nginxproxy.get_conf().decode('ASCII'))

+ 0 - 14
test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.yml

@@ -1,14 +0,0 @@
-services:
-  web:
-    image: web
-    expose:
-      - "81"
-    environment:
-      WEB_PORTS: "81"
-      VIRTUAL_HOST: "web.nginx-proxy.tld"
-      VIRTUAL_PORT: "90"
-
-  sut:
-    image: nginxproxy/nginx-proxy:test
-    volumes:
-      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 0 - 7
test/test_ports/test_VIRTUAL_PORT.py

@@ -1,7 +0,0 @@
-import pytest
-
-
-def test_answer_is_served_from_chosen_port(docker_compose, nginxproxy):
-    r = nginxproxy.get("http://web.nginx-proxy.tld/port")
-    assert r.status_code == 200
-    assert "answer from port 90\n" in r.text

+ 0 - 15
test/test_ports/test_VIRTUAL_PORT.yml

@@ -1,15 +0,0 @@
-services:
-  web:
-    image: web
-    expose:
-      - "80"
-      - "90"
-    environment:
-      WEB_PORTS: "80 90"
-      VIRTUAL_HOST: "web.nginx-proxy.tld"
-      VIRTUAL_PORT: 90
-
-  sut:
-    image: nginxproxy/nginx-proxy:test
-    volumes:
-      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 0 - 7
test/test_ports/test_default-80.py

@@ -1,7 +0,0 @@
-import pytest
-
-
-def test_answer_is_served_from_port_80_by_default(docker_compose, nginxproxy):
-    r = nginxproxy.get("http://web.nginx-proxy.tld/port")
-    assert r.status_code == 200
-    assert "answer from port 80\n" in r.text

+ 0 - 14
test/test_ports/test_default-80.yml

@@ -1,14 +0,0 @@
-services:
-  web:
-    image: web
-    expose:
-      - "80"
-      - "81"
-    environment:
-      WEB_PORTS: "80 81"
-      VIRTUAL_HOST: "web.nginx-proxy.tld"
-
-  sut:
-    image: nginxproxy/nginx-proxy:test
-    volumes:
-      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 23 - 0
test/test_ports/test_ports.py

@@ -0,0 +1,23 @@
+import re
+
+
+def test_answer_is_served_from_port_80_by_default(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://default-80.nginx-proxy.tld/port")
+    assert r.status_code == 200
+    if r.status_code == 200:
+        assert "answer from port 80\n" in r.text
+
+def test_answer_is_served_from_exposed_port_even_if_not_80(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://default-exposed.nginx-proxy.tld/port")
+    assert r.status_code == 200
+    assert "answer from port 81\n" in r.text
+
+def test_answer_is_served_from_chosen_port(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://virtual-port.nginx-proxy.tld/port")
+    assert r.status_code == 200
+    assert "answer from port 90\n" in r.text
+
+def test_answer_is_served_from_chosen_port_even_if_unreachable(docker_compose, nginxproxy):
+    r = nginxproxy.get("http://wrong-virtual-port.nginx-proxy.tld/port")
+    assert r.status_code == 502
+    assert re.search(r"\n\s+server \d+\.\d+\.\d+\.\d+:91;\n", nginxproxy.get_conf().decode('ASCII'))

+ 65 - 0
test/test_ports/test_ports.yml

@@ -0,0 +1,65 @@
+volumes:
+  nginx_conf:
+
+
+services:
+  default-80:
+    image: web
+    expose:
+      - "80"
+      - "81"
+    environment:
+      WEB_PORTS: "80 81"
+      VIRTUAL_HOST: "default-80.nginx-proxy.tld"
+
+  default-exposed:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "default-exposed.nginx-proxy.tld"
+
+  virtual-port:
+    image: web
+    expose:
+      - "80"
+      - "90"
+    environment:
+      WEB_PORTS: "80 90"
+      VIRTUAL_HOST: "virtual-port.nginx-proxy.tld"
+      VIRTUAL_PORT: "90"
+
+  wrong-virtual-port:
+    image: web
+    expose:
+      - "81"
+    environment:
+      WEB_PORTS: "81"
+      VIRTUAL_HOST: "wrong-virtual-port.nginx-proxy.tld"
+      VIRTUAL_PORT: "91"
+
+  sut:
+    profiles:
+      - singleContainer
+    image: nginxproxy/nginx-proxy:test
+    volumes:
+      - &dockerSocket /var/run/docker.sock:/tmp/docker.sock:ro
+
+  sut-dockergen:
+    profiles:
+      - separateContainers
+    image: nginxproxy/nginx-proxy:test-dockergen
+    volumes:
+      - &confVolume nginx_conf:/etc/nginx/conf.d
+      - *dockerSocket
+
+  sut-nginx:
+    profiles:
+      - separateContainers
+    container_name: nginx-proxy
+    image: nginx:alpine
+    volumes:
+      - *confVolume
+    labels:
+      - "com.github.nginx-proxy.nginx-proxy.nginx"

+ 0 - 7
test/test_ports/test_single-port-not-80.py

@@ -1,7 +0,0 @@
-import pytest
-
-
-def test_answer_is_served_from_exposed_port_even_if_not_80(docker_compose, nginxproxy):
-    r = nginxproxy.get("http://web.nginx-proxy.tld/port")
-    assert r.status_code == 200
-    assert "answer from port 81\n" in r.text

+ 0 - 13
test/test_ports/test_single-port-not-80.yml

@@ -1,13 +0,0 @@
-services:
-  web:
-    image: web
-    expose:
-      - "81"
-    environment:
-      WEB_PORTS: "81"
-      VIRTUAL_HOST: "web.nginx-proxy.tld"
-
-  sut:
-    image: nginxproxy/nginx-proxy:test
-    volumes:
-      - /var/run/docker.sock:/tmp/docker.sock:ro

+ 34 - 4
test/test_raw-ip-vhost.yml

@@ -6,6 +6,10 @@ networks:
         - subnet: 172.20.0.0/16
         - subnet: fd00::/80
 
+volumes:
+  nginx_conf:
+
+
 services:
   web1:
     container_name: web1
@@ -34,12 +38,38 @@ services:
         ipv6_address: fd00::3
 
   sut:
+    profiles:
+      - singleContainer
     image: nginxproxy/nginx-proxy:test
-    environment:
-      ENABLE_IPV6: "true"
     volumes:
-      - /var/run/docker.sock:/tmp/docker.sock:ro
-    networks:
+      - &dockerSocket /var/run/docker.sock:/tmp/docker.sock:ro
+    environment: &nginxProxyEnvironment
+      ENABLE_IPV6: "true"
+    networks: &nginxProxyNetworks
       net1:
         ipv4_address: 172.20.0.4
         ipv6_address: fd00::4
+
+  sut-dockergen:
+    profiles:
+      - separateContainers
+    image: nginxproxy/nginx-proxy:test-dockergen
+    volumes:
+      - &confVolume nginx_conf:/etc/nginx/conf.d
+      - *dockerSocket
+    environment: *nginxProxyEnvironment
+    networks:
+      net1:
+        ipv4_address: 172.20.0.5
+        ipv6_address: fd00::5
+
+  sut-nginx:
+    profiles:
+      - separateContainers
+    container_name: nginx-proxy
+    image: nginx:alpine
+    volumes:
+      - *confVolume
+    networks: *nginxProxyNetworks
+    labels:
+      - "com.github.nginx-proxy.nginx-proxy.nginx"