Skip to content

Commit 5e1266c

Browse files
committed
support uvicorn proxy-headers
1 parent b630c26 commit 5e1266c

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

src/edge_proxy/main.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ def serve():
99
"edge_proxy.server:app",
1010
host=str(settings.server.host),
1111
port=settings.server.port,
12+
proxy_headers=settings.server.proxy_headers,
1213
reload=settings.server.reload,
1314
use_colors=settings.logging.colours,
1415
)

src/edge_proxy/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ class ServerSettings(BaseModel):
9696
host: IPvAnyAddress = "0.0.0.0"
9797
port: int = 8000
9898
reload: bool = False
99+
proxy_headers: bool = False
99100

100101

101102
class HealthCheckSettings(BaseModel):

tests/test_server.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from fastapi.testclient import TestClient
55
from pytest_mock import MockerFixture
66

7+
from edge_proxy.main import serve
78
from tests.fixtures.response_data import environment_1
89

910
if typing.TYPE_CHECKING:
@@ -217,3 +218,18 @@ def test_get_identities(
217218
assert response.status_code == 200
218219
assert data["traits"] == []
219220
assert data["flags"]
221+
222+
223+
def test_serve_passes_proxy_headers_setting(mocker: MockerFixture) -> None:
224+
# Given
225+
mock_settings = mocker.patch("edge_proxy.main.get_settings")
226+
mock_settings.return_value.server.proxy_headers = True
227+
228+
mock_uvicorn = mocker.patch("edge_proxy.main.uvicorn.run")
229+
230+
# When
231+
serve()
232+
233+
# Then
234+
_, kwargs = mock_uvicorn.call_args
235+
assert kwargs.get("proxy_headers") is True

0 commit comments

Comments
 (0)