def setUp(self): self.middleware = LoginRequiredMiddleware() self.request = RequestFactory().get('/test-protected-url/') self.request.user = mock.Mock() self.kwargs = { 'view_func': HttpResponse, 'view_args': [], 'view_kwargs': {}, 'request': self.request, }
class LoginRequiredMiddlewareTests(TestCase): def setUp(self): self.middleware = LoginRequiredMiddleware() self.request = RequestFactory().get('/test-protected-url/') self.request.user = mock.Mock() self.kwargs = { 'view_func': HttpResponse, 'view_args': [], 'view_kwargs': {}, 'request': self.request, } def test_redirects_to_login_when_not_authenticated(self): self.request.user.is_authenticated.return_value = False response = self.middleware.process_view(**self.kwargs) self.assertEqual(response.status_code, 302) def test_returns_none_when_authenticated(self): self.request.user.is_authenticated.return_value = True response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_returns_none_when_url_is_in_public_urls(self): self.request.user.is_authenticated.return_value = False self.middleware.public_view_urls = [ re.compile(r'/test-protected-url/') ] response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_returns_none_when_url_is_decorated_public(self): self.request.user.is_authenticated.return_value = False self.kwargs['view_func'].STRONGHOLD_IS_PUBLIC = True response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None)
class LoginRequiredMiddlewareTests(TestCase): def setUp(self): self.middleware = LoginRequiredMiddleware() self.request = RequestFactory().get('/test-protected-url/') self.request.user = mock.Mock() self.kwargs = { 'view_func': HttpResponse, 'view_args': [], 'view_kwargs': {}, 'request': self.request, } def test_redirects_to_login_when_not_authenticated(self): self.request.user.is_authenticated.return_value = False response = self.middleware.process_view(**self.kwargs) self.assertEqual(response.status_code, 302) def test_returns_none_when_authenticated(self): self.request.user.is_authenticated.return_value = True response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_returns_none_when_url_is_in_public_urls(self): self.request.user.is_authenticated.return_value = False self.middleware.public_view_urls = [re.compile(r'/test-protected-url/')] response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_returns_none_when_url_is_decorated_public(self): self.request.user.is_authenticated.return_value = False self.kwargs['view_func'].STRONGHOLD_IS_PUBLIC = True response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None)
class LoginRequiredMiddlewareTests(TestCase): def setUp(self): self.middleware = LoginRequiredMiddleware() self.request = RequestFactory().get('/test-protected-url/') self.request.user = mock.Mock() self.kwargs = { 'view_func': HttpResponse, 'view_args': [], 'view_kwargs': {}, 'request': self.request, } def set_authenticated(self, is_authenticated): """Set whether user is authenticated in the request.""" user = self.request.user user.is_authenticated.return_value = is_authenticated # In Django >= 1.10, is_authenticated acts as property and method user.is_authenticated.__bool__ = lambda self: is_authenticated user.is_authenticated.__nonzero__ = lambda self: is_authenticated def test_redirects_to_login_when_not_authenticated(self): self.set_authenticated(False) response = self.middleware.process_view(**self.kwargs) self.assertEqual(response.status_code, 302) def test_returns_none_when_authenticated(self): self.set_authenticated(True) response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_returns_none_when_url_is_in_public_urls(self): self.set_authenticated(False) self.middleware.public_view_urls = [ re.compile(r'/test-protected-url/') ] response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_returns_none_when_url_is_decorated_public(self): self.set_authenticated(False) self.kwargs['view_func'].STRONGHOLD_IS_PUBLIC = True response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_redirects_to_login_when_not_passing_custom_test(self): with mock.patch('stronghold.conf.STRONGHOLD_USER_TEST_FUNC', lambda u: u.is_staff): self.request.user.is_staff = False response = self.middleware.process_view(**self.kwargs) self.assertEqual(response.status_code, 302) def test_returns_none_when_passing_custom_test(self): with mock.patch('stronghold.conf.STRONGHOLD_USER_TEST_FUNC', lambda u: u.is_staff): self.request.user.is_staff = True response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None)
class LoginRequiredMiddlewareTests(TestCase): def setUp(self): self.middleware = LoginRequiredMiddleware() self.request = RequestFactory().get('/test-protected-url/') self.request.user = mock.Mock() self.kwargs = { 'view_func': HttpResponse, 'view_args': [], 'view_kwargs': {}, 'request': self.request, } def set_authenticated(self, is_authenticated): """Set whether user is authenticated in the request.""" user = self.request.user user.is_authenticated.return_value = is_authenticated # In Django >= 1.10, is_authenticated acts as property and method user.is_authenticated.__bool__ = lambda self: is_authenticated user.is_authenticated.__nonzero__ = lambda self: is_authenticated def test_redirects_to_login_when_not_authenticated(self): self.set_authenticated(False) response = self.middleware.process_view(**self.kwargs) self.assertEqual(response.status_code, 302) def test_returns_none_when_authenticated(self): self.set_authenticated(True) response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_returns_none_when_url_is_in_public_urls(self): self.set_authenticated(False) self.middleware.public_view_urls = [re.compile(r'/test-protected-url/')] response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_returns_none_when_url_is_decorated_public(self): self.set_authenticated(False) self.kwargs['view_func'].STRONGHOLD_IS_PUBLIC = True response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None) def test_redirects_to_login_when_not_passing_custom_test(self): with mock.patch('stronghold.conf.STRONGHOLD_USER_TEST_FUNC', lambda u: u.is_staff): self.request.user.is_staff = False response = self.middleware.process_view(**self.kwargs) self.assertEqual(response.status_code, 302) def test_returns_none_when_passing_custom_test(self): with mock.patch('stronghold.conf.STRONGHOLD_USER_TEST_FUNC', lambda u: u.is_staff): self.request.user.is_staff = True response = self.middleware.process_view(**self.kwargs) self.assertEqual(response, None)