def test_it_returns_original_header_if_url_cannot_be_parsed(self): url = "http://[" header, value = rewrite_location_header("Location", url, {"via.foo": "bar"}) assert header == "Location" assert value == url
def test_it_ignores_non_location_headers(self): params = {"via.foo": "bar", "via.baz": "meep"} header, value = rewrite_location_header("Not-Location", "https://example.com", params) assert header == "Not-Location" assert value == "https://example.com"
def test_it_preserves_rest_of_url_in_location_header(self): query_string = "empty_param=&non_empty_param=foo&q=one&q=two" url = "https://localhost:5000/a/path?{}#some_fragment".format(query_string) header, value = rewrite_location_header("Location", url, {}) assert header == "Location" assert value == url
def test_it_returns_original_header_if_url_cannot_be_parsed(self): url = 'http://[' header, value = rewrite_location_header('Location', url, {'via.foo': 'bar'}) assert header == 'Location' assert value == url
def test_it_ignores_non_location_headers(self): params = {'via.foo': 'bar', 'via.baz': 'meep'} header, value = rewrite_location_header('Not-Location', 'https://example.com', params) assert header == 'Not-Location' assert value == 'https://example.com'
def test_it_ignores_non_location_headers(self): params = {"via.foo": "bar", "via.baz": "meep"} header, value = rewrite_location_header( "Not-Location", "https://example.com", params ) assert header == "Not-Location" assert value == "https://example.com"
def test_it_adds_params_to_location_header(self, header_name): params = {'via.foo': 'bar', 'via.baz': 'meep'} header, value = rewrite_location_header(header_name, 'https://example.com', params) assert header == header_name assert value == 'https://example.com?via.foo={}&via.baz={}'.format( params['via.foo'], params['via.baz'])
def test_it_adds_params_to_location_header(self, header_name): params = {"via.foo": "bar", "via.baz": "meep"} header, value = rewrite_location_header(header_name, "https://example.com", params) parsed_value = urlparse.urlparse(value) parsed_qs = urlparse.parse_qs(parsed_value.query) assert header == header_name assert value.startswith("https://example.com?") assert parsed_qs == {"via.foo": ["bar"], "via.baz": ["meep"]}
def test_it_adds_params_to_location_header(self, header_name): params = {"via.foo": "bar", "via.baz": "meep"} header, value = rewrite_location_header( header_name, "https://example.com", params ) parsed_value = urlparse.urlparse(value) parsed_qs = urlparse.parse_qs(parsed_value.query) assert header == header_name assert value.startswith("https://example.com?") assert parsed_qs == {"via.foo": ["bar"], "via.baz": ["meep"]}