class TestLogoutResource(unittest.TestCase): def setUp(self): self.services_factory = MagicMock() self.resource = LogoutResource(self.services_factory) self.services_factory.log_out_user.return_value = defer.succeed(None) self.web = DummySite(self.resource) @patch('twisted.web.util.redirectTo') def test_logout(self, mock_redirect): request = DummyRequest(['/logout']) request.method = 'POST' session = self.resource.get_session(request) session.expire = MagicMock() mock_redirect.return_value = 'some redirect response' d = self.web.get(request) def expire_session_and_redirect(_): session = self.resource.get_session(request) self.services_factory.log_out_user.assert_called_once_with(session.user_uuid) session.expire.assert_called_once_with() mock_redirect.assert_called_once_with('/login', request) d.addCallback(expire_session_and_redirect) return d def test_get_is_not_supported_for_logout(self): request = DummyRequest(['/logout']) request.method = 'GET' self.assertRaises(UnsupportedMethod, self.web.get, request)
class TestLogoutResource(unittest.TestCase): def setUp(self): self.services_factory = MagicMock() self.resource = LogoutResource(self.services_factory) self.services_factory.log_out_user.return_value = defer.succeed(None) self.web = DummySite(self.resource) @patch('twisted.web.util.redirectTo') def test_logout(self, mock_redirect): request = DummyRequest(['/logout']) request.method = 'POST' session = self.resource.get_session(request) session.expire = MagicMock() mock_redirect.return_value = 'some redirect response' d = self.web.get(request) def expire_session_and_redirect(_): session = self.resource.get_session(request) self.services_factory.log_out_user.assert_called_once_with( session.user_uuid) session.expire.assert_called_once_with() mock_redirect.assert_called_once_with('/login', request) d.addCallback(expire_session_and_redirect) return d def test_get_is_not_supported_for_logout(self): request = DummyRequest(['/logout']) request.method = 'GET' self.assertRaises(UnsupportedMethod, self.web.get, request)
class TestLogoutResource(unittest.TestCase): def setUp(self): self.services_factory = MagicMock() self.resource = LogoutResource(self.services_factory) self.services_factory.log_out_user.return_value = defer.succeed(None) self.web = DummySite(self.resource) @patch('twisted.web.util.redirectTo') def test_logout(self, mock_redirect): request = DummyRequest(['/logout']) request.method = 'POST' session = self.resource.get_session(request) session.expire = MagicMock() mock_redirect.return_value = 'some redirect response' d = self.web.get(request) def expire_session_and_redirect(_): session = self.resource.get_session(request) self.services_factory.destroy_session.assert_called_once_with( session.user_uuid) session.expire.assert_called_once_with() mock_redirect.assert_called_once_with('/login', request) d.addCallback(expire_session_and_redirect) return d def test_get_is_not_supported_for_logout(self): request = DummyRequest(['/logout']) request.method = 'GET' self.assertRaises(UnsupportedMethod, self.web.get, request) def test_errback_is_called(self): request = DummyRequest(['/logout']) request.method = 'POST' session = self.resource.get_session(request) exception = Exception('') session.expire = MagicMock(side_effect=exception) d = self.web.get(request) def assert_500_when_exception_is_thrown(_): self.assertEqual(500, request.responseCode) self.assertEqual('Something went wrong!', request.written[0]) d.addCallback(assert_500_when_exception_is_thrown) return d
class TestLogoutResource(unittest.TestCase): def setUp(self): self.services_factory = MagicMock() self.resource = LogoutResource(self.services_factory) self.services_factory.log_out_user.return_value = defer.succeed(None) self.web = DummySite(self.resource) @patch('twisted.web.util.redirectTo') def test_logout(self, mock_redirect): request = DummyRequest(['/logout']) request.method = 'POST' session = self.resource.get_session(request) session.expire = MagicMock() mock_redirect.return_value = 'some redirect response' d = self.web.get(request) def expire_session_and_redirect(_): session = self.resource.get_session(request) self.services_factory.destroy_session.assert_called_once_with(session.user_uuid) session.expire.assert_called_once_with() mock_redirect.assert_called_once_with('/login', request) d.addCallback(expire_session_and_redirect) return d def test_get_is_not_supported_for_logout(self): request = DummyRequest(['/logout']) request.method = 'GET' self.assertRaises(UnsupportedMethod, self.web.get, request) def test_errback_is_called(self): request = DummyRequest(['/logout']) request.method = 'POST' session = self.resource.get_session(request) exception = Exception('') session.expire = MagicMock(side_effect=exception) d = self.web.get(request) def assert_500_when_exception_is_thrown(_): self.assertEqual(500, request.responseCode) self.assertEqual('Something went wrong!', request.written[0]) d.addCallback(assert_500_when_exception_is_thrown) return d
def initialize(self, portal=None, disclaimer_banner=None): self._child_resources.add('sandbox', SandboxResource(self._static_folder)) self._child_resources.add('assets', File(self._static_folder)) self._child_resources.add('keys', KeysResource(self._services_factory)) self._child_resources.add(AttachmentsResource.BASE_URL, AttachmentsResource(self._services_factory)) self._child_resources.add('contacts', ContactsResource(self._services_factory)) self._child_resources.add('features', FeaturesResource(portal)) self._child_resources.add('tags', TagsResource(self._services_factory)) self._child_resources.add('mails', MailsResource(self._services_factory)) self._child_resources.add('mail', MailResource(self._services_factory)) self._child_resources.add('feedback', FeedbackResource(self._services_factory)) self._child_resources.add('user-settings', UserSettingsResource(self._services_factory)) self._child_resources.add( LoginResource.BASE_URL, LoginResource(self._services_factory, portal, disclaimer_banner=disclaimer_banner)) self._child_resources.add(LogoutResource.BASE_URL, LogoutResource(self._services_factory)) self._mode = MODE_RUNNING
def initialize(self, provider=None, disclaimer_banner=None, authenticator=None): self._child_resources.add('assets', File(self._protected_static_folder)) self._child_resources.add(AccountRecoveryResource.BASE_URL, AccountRecoveryResource(self._services_factory)) self._child_resources.add('backup-account', BackupAccountResource(self._services_factory, authenticator, provider)) self._child_resources.add('sandbox', SandboxResource(self._protected_static_folder)) self._child_resources.add('keys', KeysResource(self._services_factory)) self._child_resources.add(AttachmentsResource.BASE_URL, AttachmentsResource(self._services_factory)) self._child_resources.add('contacts', ContactsResource(self._services_factory)) self._child_resources.add('features', FeaturesResource(provider)) self._child_resources.add('tags', TagsResource(self._services_factory)) self._child_resources.add('mails', MailsResource(self._services_factory)) self._child_resources.add('mail', MailResource(self._services_factory)) self._child_resources.add('feedback', FeedbackResource(self._services_factory)) self._child_resources.add('user-settings', UserSettingsResource(self._services_factory)) self._child_resources.add('users', UsersResource(self._services_factory)) self._child_resources.add(LoginResource.BASE_URL, LoginResource(self._services_factory, provider, disclaimer_banner=disclaimer_banner, authenticator=authenticator)) self._child_resources.add(LogoutResource.BASE_URL, LogoutResource(self._services_factory)) self._mode = MODE_RUNNING
class TestLogoutResource(unittest.TestCase): def setUp(self): self.services_factory = mock() self.resource = LogoutResource(self.services_factory) self.web = DummySite(self.resource) @patch('twisted.web.util.redirectTo') def test_logout(self, mock_redirect): request = DummyRequest(['/logout']) mock_redirect.return_value = 'haha' d = self.web.get(request) def expire_session_and_redirect(_): session = self.resource.get_session(request) self.assertFalse(session.is_logged_in()) mock_redirect.assert_called_once_with('/login', request) d.addCallback(expire_session_and_redirect) return d
def setUp(self): self.services_factory = MagicMock() self.resource = LogoutResource(self.services_factory) self.services_factory.log_out_user.return_value = defer.succeed(None) self.web = DummySite(self.resource)
def setUp(self): self.services_factory = mock() self.resource = LogoutResource(self.services_factory) self.web = DummySite(self.resource)