From 7acf4780d51537837c5d2ac08a4141930368a7bc Mon Sep 17 00:00:00 2001 From: Nicolas Duchon Date: Sun, 22 Dec 2024 20:03:51 +0100 Subject: [PATCH] test: separate containers (contd) --- ..._PORT-single-different-from-single-port.py | 8 --- ...PORT-single-different-from-single-port.yml | 14 ---- test/test_ports/test_VIRTUAL_PORT.py | 7 -- test/test_ports/test_VIRTUAL_PORT.yml | 15 ----- test/test_ports/test_default-80.py | 7 -- test/test_ports/test_default-80.yml | 14 ---- test/test_ports/test_ports.py | 23 +++++++ test/test_ports/test_ports.yml | 65 +++++++++++++++++++ test/test_ports/test_single-port-not-80.py | 7 -- test/test_ports/test_single-port-not-80.yml | 13 ---- test/test_raw-ip-vhost.yml | 38 +++++++++-- 11 files changed, 122 insertions(+), 89 deletions(-) delete mode 100644 test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.py delete mode 100644 test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.yml delete mode 100644 test/test_ports/test_VIRTUAL_PORT.py delete mode 100644 test/test_ports/test_VIRTUAL_PORT.yml delete mode 100644 test/test_ports/test_default-80.py delete mode 100644 test/test_ports/test_default-80.yml create mode 100644 test/test_ports/test_ports.py create mode 100644 test/test_ports/test_ports.yml delete mode 100644 test/test_ports/test_single-port-not-80.py delete mode 100644 test/test_ports/test_single-port-not-80.yml diff --git a/test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.py b/test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.py deleted file mode 100644 index 4008166..0000000 --- a/test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.py +++ /dev/null @@ -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')) diff --git a/test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.yml b/test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.yml deleted file mode 100644 index bed9515..0000000 --- a/test/test_ports/test_VIRTUAL_PORT-single-different-from-single-port.yml +++ /dev/null @@ -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 diff --git a/test/test_ports/test_VIRTUAL_PORT.py b/test/test_ports/test_VIRTUAL_PORT.py deleted file mode 100644 index 3c95ba6..0000000 --- a/test/test_ports/test_VIRTUAL_PORT.py +++ /dev/null @@ -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 diff --git a/test/test_ports/test_VIRTUAL_PORT.yml b/test/test_ports/test_VIRTUAL_PORT.yml deleted file mode 100644 index da39484..0000000 --- a/test/test_ports/test_VIRTUAL_PORT.yml +++ /dev/null @@ -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 diff --git a/test/test_ports/test_default-80.py b/test/test_ports/test_default-80.py deleted file mode 100644 index 74c2f9f..0000000 --- a/test/test_ports/test_default-80.py +++ /dev/null @@ -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 diff --git a/test/test_ports/test_default-80.yml b/test/test_ports/test_default-80.yml deleted file mode 100644 index 3774a3c..0000000 --- a/test/test_ports/test_default-80.yml +++ /dev/null @@ -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 diff --git a/test/test_ports/test_ports.py b/test/test_ports/test_ports.py new file mode 100644 index 0000000..b8d9801 --- /dev/null +++ b/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')) diff --git a/test/test_ports/test_ports.yml b/test/test_ports/test_ports.yml new file mode 100644 index 0000000..30fe83d --- /dev/null +++ b/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" diff --git a/test/test_ports/test_single-port-not-80.py b/test/test_ports/test_single-port-not-80.py deleted file mode 100644 index ee86eca..0000000 --- a/test/test_ports/test_single-port-not-80.py +++ /dev/null @@ -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 diff --git a/test/test_ports/test_single-port-not-80.yml b/test/test_ports/test_single-port-not-80.yml deleted file mode 100644 index 5449815..0000000 --- a/test/test_ports/test_single-port-not-80.yml +++ /dev/null @@ -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 diff --git a/test/test_raw-ip-vhost.yml b/test/test_raw-ip-vhost.yml index 687449e..8097154 100644 --- a/test/test_raw-ip-vhost.yml +++ b/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"