diff --git a/pytest_httpbin/serve.py b/pytest_httpbin/serve.py index 07a92dc..3c55de0 100644 --- a/pytest_httpbin/serve.py +++ b/pytest_httpbin/serve.py @@ -69,6 +69,7 @@ def finish_request(self, request, client_address): server_side=True, suppress_ragged_eofs=False, ) + self.base_environ['HTTPS'] = 'yes' self.RequestHandlerClass(ssock, client_address, self) except Exception as e: print("pytest-httpbin server hit an exception serving request: %s" % e) diff --git a/tests/test_server.py b/tests/test_server.py index d97d60f..09ef746 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -92,3 +92,14 @@ def test_fixed_port_environment_variables(protocol): del os.environ[envvar] else: os.environ[envvar] = envvar_original + + +def test_redirect_location_is_https_for_secure_server(httpbin_secure): + assert httpbin_secure.url.startswith('https://') + response = requests.get( + httpbin_secure + "/redirect-to?url=/html", + allow_redirects=False + ) + assert response.status_code == 302 + assert response.headers.get('Location') + assert response.headers['Location'].startswith('https://')