mirror of
				https://github.com/thib8956/nginx-proxy
				synced 2025-11-03 18:49:20 +00:00 
			
		
		
		
	tests: parameterize test
This commit is contained in:
		@@ -1,34 +1,28 @@
 | 
			
		||||
import pytest
 | 
			
		||||
 | 
			
		||||
# These tests are to test that GET is 301 and other methods all use 308
 | 
			
		||||
# Permanent Redirects
 | 
			
		||||
# https://github.com/nginx-proxy/nginx-proxy/pull/1737
 | 
			
		||||
def test_web1_GET_301(docker_compose, nginxproxy):
 | 
			
		||||
    r = nginxproxy.get('http://nginx-proxy.tld', allow_redirects=False)
 | 
			
		||||
    assert r.status_code == 301
 | 
			
		||||
    assert r.headers['Location'] == 'https://nginx-proxy.tld/'
 | 
			
		||||
 | 
			
		||||
def test_web1_POST_308(docker_compose, nginxproxy):
 | 
			
		||||
    r = nginxproxy.post('http://nginx-proxy.tld', allow_redirects=False)
 | 
			
		||||
    assert r.status_code == 308
 | 
			
		||||
    assert r.headers['Location'] == 'https://nginx-proxy.tld/'
 | 
			
		||||
 | 
			
		||||
def test_web1_PUT_308(docker_compose, nginxproxy):
 | 
			
		||||
    r = nginxproxy.put('http://nginx-proxy.tld', allow_redirects=False)
 | 
			
		||||
    assert r.status_code == 308
 | 
			
		||||
    assert r.headers['Location'] == 'https://nginx-proxy.tld/'
 | 
			
		||||
 | 
			
		||||
def test_web1_HEAD_308(docker_compose, nginxproxy):
 | 
			
		||||
    r = nginxproxy.head('http://nginx-proxy.tld', allow_redirects=False)
 | 
			
		||||
    assert r.status_code == 308
 | 
			
		||||
    assert r.headers['Location'] == 'https://nginx-proxy.tld/'
 | 
			
		||||
 | 
			
		||||
def test_web1_DELETE_308(docker_compose, nginxproxy):
 | 
			
		||||
    r = nginxproxy.delete('http://nginx-proxy.tld', allow_redirects=False)
 | 
			
		||||
    assert r.status_code == 308
 | 
			
		||||
    assert r.headers['Location'] == 'https://nginx-proxy.tld/'
 | 
			
		||||
 | 
			
		||||
def test_web1_OPTIONS_308(docker_compose, nginxproxy):
 | 
			
		||||
    r = nginxproxy.options('http://nginx-proxy.tld', allow_redirects=False)
 | 
			
		||||
    assert r.status_code == 308
 | 
			
		||||
    assert r.headers['Location'] == 'https://nginx-proxy.tld/'
 | 
			
		||||
@pytest.mark.parametrize("http_method,expected_code", [
 | 
			
		||||
    ("GET", 301),
 | 
			
		||||
    ("HEAD", 308),
 | 
			
		||||
    ("POST", 308),
 | 
			
		||||
    ("PUT", 308),
 | 
			
		||||
    ("PATCH", 308),
 | 
			
		||||
    ("DELETE", 308),
 | 
			
		||||
    ("OPTIONS", 308),
 | 
			
		||||
    ("CONNECT", 405),
 | 
			
		||||
    ("TRACE", 405),
 | 
			
		||||
])
 | 
			
		||||
def test_default_redirect_by_method(
 | 
			
		||||
    docker_compose,
 | 
			
		||||
    nginxproxy,
 | 
			
		||||
    http_method: str,
 | 
			
		||||
    expected_code: int,
 | 
			
		||||
):
 | 
			
		||||
    r = nginxproxy.request(
 | 
			
		||||
        method=http_method,
 | 
			
		||||
        url='http://nginx-proxy.tld',
 | 
			
		||||
        allow_redirects=False,
 | 
			
		||||
    )
 | 
			
		||||
    assert r.status_code == expected_code
 | 
			
		||||
    if expected_code in { 301, 302, 307, 308 }:
 | 
			
		||||
        assert r.headers['Location'] == 'https://nginx-proxy.tld/'
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user