Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import mock
- from flask import url_for
- from flask_testing import TestCase
- import unittest
- import common
- from db import db_session, Journalist
- import journalist
- os.environ['SECUREDROP_ENV'] = 'test'
- class TestJournalist(TestCase):
- def create_app(self):
- return journalist.app
- def setUp(self):
- common.shared_setup()
- patcher = mock.patch('db.Journalist.verify_token')
- self.addCleanup(patcher.stop)
- self.mock_journalist_verify_token = patcher.start()
- self.mock_journalist_verify_token.return_value = True
- self.user_pw = "bar"
- self.user = Journalist(username="foo",
- password=self.user_pw)
- db_session.add(self.user)
- db_session.add(self.admin_user)
- db_session.commit()
- def tearDown(self):
- common.shared_teardown()
- def _login_user(self):
- self.client.post(url_for('login'), data=dict(
- username=self.user.username,
- password=self.user_pw,
- token='mocked'),
- follow_redirects=True)
- def _logout_user(self):
- self.client.get(url_for('logout'),
- follow_redirects=True)
- def test_user_not_really_logged_out(self):
- # Because self._ctx (the Flask request context) is only reset by the
- # self._post_teardown and self._pre_setup methods provided by
- # flask_testing.TestCase, self._ctx.g (the Flask g object) is not reset
- # between requests. So even though we see the werkzeug.test.Client
- # behaving properly (i.e., deleting its cookies when asked--although if
- # you look at line 340 of the Flask session code it should be deleting
- # the whole cookie, not just its contents--that's a different story),
- # visitng a restricted page in the interface is still possible after
- # logout.
- self._login_user()
- self.assertIn("js", repr(self.client.cookie_jar._cookies))
- self._logout_user()
- self.assertEqual(self.client.cookie_jar._cookies, {u'localhost.local': {'/': {}}})
- res = self.client.get(url_for('index'))
- self.assertIn("No documents have been submitted!", res.data)
- if __name__ == "__main__":
- unittest.main(verbosity=2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement