Files
VacatureRadar/tests/unit/test_network.py
T
Jens 7caea3a1ee
deploy / deploy (push) Canceled after 0s
demo mode
2026-07-27 23:38:37 +02:00

31 lines
1006 B
Python

from __future__ import annotations
from django.test import RequestFactory, override_settings
from apps.core.network import client_ip
def _request(remote: str, forwarded: str = ""):
request = RequestFactory().get("/")
request.META["REMOTE_ADDR"] = remote
if forwarded:
request.META["HTTP_X_FORWARDED_FOR"] = forwarded
return request
@override_settings(TRUSTED_PROXY_CIDRS=[])
def test_client_ip_ignores_untrusted_forwarded_header():
assert client_ip(_request("203.0.113.20", "198.51.100.7")) == "203.0.113.20"
@override_settings(TRUSTED_PROXY_CIDRS=["172.18.0.0/16"])
def test_client_ip_uses_forwarded_chain_only_from_trusted_proxy():
request = _request("172.18.0.4", "198.51.100.7, 172.18.0.3")
assert client_ip(request) == "198.51.100.7"
@override_settings(TRUSTED_PROXY_CIDRS=["172.18.0.0/16"])
def test_client_ip_skips_invalid_forwarded_values():
request = _request("172.18.0.4", "invalid, 198.51.100.9")
assert client_ip(request) == "198.51.100.9"