test_timezone_middleware.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from django.test import TestCase
  2. from django.utils import timezone
  3. from misago.conf import settings
  4. from misago.users.middleware import TimezoneMiddleware
  5. class MockRequest(object):
  6. def __init__(self, user):
  7. self.user = user
  8. class MockAuthenticated(object):
  9. timezone = 'Europe/Warsaw'
  10. def is_authenticated(self):
  11. return True
  12. class MockGuest(object):
  13. def is_authenticated(self):
  14. return False
  15. class TimezoneMiddlewareTests(TestCase):
  16. def setUp(self):
  17. timezone.activate('Europe/Paris')
  18. def tearDown(self):
  19. timezone.deactivate()
  20. def test_middleware_sets_timezone_for_guest(self):
  21. """Middleware sets ip from remote_addr header"""
  22. request = MockRequest(MockGuest())
  23. TimezoneMiddleware().process_request(request)
  24. self.assertEqual(timezone.get_current_timezone_name().lower(),
  25. settings.default_timezone)
  26. def test_middleware_sets_timezone_for_authenticated(self):
  27. """Middleware sets ip from forwarded_for header"""
  28. request = MockRequest(MockAuthenticated())
  29. TimezoneMiddleware().process_request(request)
  30. self.assertEqual(timezone.get_current_timezone_name(),
  31. MockAuthenticated.timezone)