test: separate containers (contd)

This commit is contained in:
Nicolas Duchon 2024-12-22 20:03:51 +01:00
parent 9fd66de39d
commit 7acf4780d5
11 changed files with 122 additions and 89 deletions

View file

@ -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'))

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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'))

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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"