from django.test import TestCase from misago.users.middleware import RealIPMiddleware class MockRequest(object): def __init__(self, addr, forwarded_for=None): self.META = {'REMOTE_ADDR': addr} if forwarded_for: self.META['HTTP_X_FORWARDED_FOR'] = forwarded_for class RealIPMiddlewareTests(TestCase): def test_middleware_sets_ip_from_remote_add(self): """Middleware sets ip from remote_addr header""" request = MockRequest('83.42.13.77') RealIPMiddleware().process_request(request) self.assertEqual(request.user_ip, request.META['REMOTE_ADDR']) def test_middleware_sets_ip_from_forwarded_for(self): """Middleware sets ip from forwarded_for header""" request = MockRequest('127.0.0.1', '83.42.13.77') RealIPMiddleware().process_request(request) self.assertEqual(request.user_ip, request.META['HTTP_X_FORWARDED_FOR'])