From 8aa3158952ea342960507b3824196de98e91c13f Mon Sep 17 00:00:00 2001 From: Thomas LEVEIL Date: Fri, 27 Jan 2017 02:34:11 +0100 Subject: [PATCH] TESTS: add test for custom default location configuration --- .../my_custom_proxy_settings_bar.conf | 1 + .../test_custom-defaults-location.py | 28 ++++++++++++++++ .../test_custom-defaults-location.yml | 32 +++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 test2/test_custom/my_custom_proxy_settings_bar.conf create mode 100644 test2/test_custom/test_custom-defaults-location.py create mode 100644 test2/test_custom/test_custom-defaults-location.yml diff --git a/test2/test_custom/my_custom_proxy_settings_bar.conf b/test2/test_custom/my_custom_proxy_settings_bar.conf new file mode 100644 index 0000000..e8b0827 --- /dev/null +++ b/test2/test_custom/my_custom_proxy_settings_bar.conf @@ -0,0 +1 @@ +add_header X-test bar; diff --git a/test2/test_custom/test_custom-defaults-location.py b/test2/test_custom/test_custom-defaults-location.py new file mode 100644 index 0000000..2b47f71 --- /dev/null +++ b/test2/test_custom/test_custom-defaults-location.py @@ -0,0 +1,28 @@ +import pytest + +def test_custom_default_conf_does_not_apply_to_unknown_vhost(docker_compose, nginxproxy): + r = nginxproxy.get("http://nginx-proxy/") + assert r.status_code == 503 + assert "X-test" not in r.headers + +def test_custom_default_conf_applies_to_web1(docker_compose, nginxproxy): + r = nginxproxy.get("http://web1.nginx-proxy.local/port") + assert r.status_code == 200 + assert r.text == "answer from port 81\n" + assert "X-test" in r.headers + assert "f00" == r.headers["X-test"] + +def test_custom_default_conf_applies_to_web2(docker_compose, nginxproxy): + r = nginxproxy.get("http://web2.nginx-proxy.local/port") + assert r.status_code == 200 + assert r.text == "answer from port 82\n" + assert "X-test" in r.headers + assert "f00" == r.headers["X-test"] + + +def test_custom_default_conf_is_overriden_for_web3(docker_compose, nginxproxy): + r = nginxproxy.get("http://web3.nginx-proxy.local/port") + assert r.status_code == 200 + assert r.text == "answer from port 83\n" + assert "X-test" in r.headers + assert "bar" == r.headers["X-test"] diff --git a/test2/test_custom/test_custom-defaults-location.yml b/test2/test_custom/test_custom-defaults-location.yml new file mode 100644 index 0000000..24be746 --- /dev/null +++ b/test2/test_custom/test_custom-defaults-location.yml @@ -0,0 +1,32 @@ +version: '2' +services: + nginx-proxy: + image: jwilder/nginx-proxy:test + volumes: + - /var/run/docker.sock:/tmp/docker.sock:ro + - ./my_custom_proxy_settings.conf:/etc/nginx/vhost.d/default_location:ro + - ./my_custom_proxy_settings_bar.conf:/etc/nginx/vhost.d/web3.nginx-proxy.local_location:ro + + web1: + image: web + expose: + - "81" + environment: + WEB_PORTS: 81 + VIRTUAL_HOST: web1.nginx-proxy.local + + web2: + image: web + expose: + - "82" + environment: + WEB_PORTS: 82 + VIRTUAL_HOST: web2.nginx-proxy.local + + web3: + image: web + expose: + - "83" + environment: + WEB_PORTS: 83 + VIRTUAL_HOST: web3.nginx-proxy.local \ No newline at end of file