test_wildcard.py 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. import pytest
  2. @pytest.mark.parametrize("subdomain", ["foo", "bar"])
  3. def test_web1_http_redirects_to_https(docker_compose, nginxproxy, subdomain):
  4. r = nginxproxy.get(f"http://{subdomain}.nginx-proxy.tld/", allow_redirects=False)
  5. assert r.status_code == 301
  6. assert "Location" in r.headers
  7. assert f"https://{subdomain}.nginx-proxy.tld/" == r.headers['Location']
  8. @pytest.mark.parametrize("subdomain", ["foo", "bar"])
  9. def test_web1_https_is_forwarded(docker_compose, nginxproxy, subdomain):
  10. r = nginxproxy.get(f"https://{subdomain}.nginx-proxy.tld/port", allow_redirects=False)
  11. assert r.status_code == 200
  12. assert "answer from port 81\n" in r.text
  13. @pytest.mark.parametrize("subdomain", ["foo", "bar"])
  14. def test_web1_HSTS_policy_is_active(docker_compose, nginxproxy, subdomain):
  15. r = nginxproxy.get(f"https://{subdomain}.nginx-proxy.tld/port", allow_redirects=False)
  16. assert "answer from port 81\n" in r.text
  17. assert "Strict-Transport-Security" in r.headers
  18. @pytest.mark.parametrize("subdomain", ["foo", "bar"])
  19. def test_web1_acme_challenge_works(docker_compose, nginxproxy, acme_challenge_path, subdomain):
  20. r = nginxproxy.get(
  21. f"http://web3.nginx-proxy.tld/{acme_challenge_path}",
  22. allow_redirects=False
  23. )
  24. assert r.status_code == 200
  25. assert "challenge-teststring\n" in r.text