mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
29 lines
1.3 KiB
Python
29 lines
1.3 KiB
Python
![]() |
from django.test import TestCase, RequestFactory
|
||
|
|
||
|
from netaddr import IPAddress
|
||
|
from utilities.request import get_client_ip
|
||
|
|
||
|
|
||
|
class GetClientIPTests(TestCase):
|
||
|
def setUp(self):
|
||
|
self.factory = RequestFactory()
|
||
|
|
||
|
def test_ipv4_address(self):
|
||
|
request = self.factory.get('/', HTTP_X_FORWARDED_FOR='192.168.1.1')
|
||
|
self.assertEqual(get_client_ip(request), IPAddress('192.168.1.1'))
|
||
|
request = self.factory.get('/', HTTP_X_FORWARDED_FOR='192.168.1.1:8080')
|
||
|
self.assertEqual(get_client_ip(request), IPAddress('192.168.1.1'))
|
||
|
|
||
|
def test_ipv6_address(self):
|
||
|
request = self.factory.get('/', HTTP_X_FORWARDED_FOR='2001:db8::8a2e:370:7334')
|
||
|
self.assertEqual(get_client_ip(request), IPAddress('2001:db8::8a2e:370:7334'))
|
||
|
request = self.factory.get('/', HTTP_X_FORWARDED_FOR='[2001:db8::8a2e:370:7334]')
|
||
|
self.assertEqual(get_client_ip(request), IPAddress('2001:db8::8a2e:370:7334'))
|
||
|
request = self.factory.get('/', HTTP_X_FORWARDED_FOR='[2001:db8::8a2e:370:7334]:8080')
|
||
|
self.assertEqual(get_client_ip(request), IPAddress('2001:db8::8a2e:370:7334'))
|
||
|
|
||
|
def test_invalid_ip_address(self):
|
||
|
request = self.factory.get('/', HTTP_X_FORWARDED_FOR='invalid_ip')
|
||
|
with self.assertRaises(ValueError):
|
||
|
get_client_ip(request)
|