Flask-security unit testing
Вход и выход
Методы:
def login(self, username, password):
return self.app.post('/login', data=dict(
username=username,
password=password
), follow_redirects=True)
def logout(self):
return self.app.get('/logout', follow_redirects=True)
Вызов:
def test_login_logout(self):
rv = self.login('admin', 'default')
assert 'You were logged in' in rv.data
rv = self.logout()
assert 'You were logged out' in rv.data
rv = self.login('adminx', 'default')
assert 'Invalid username' in rv.data
rv = self.login('admin', 'defaultx')
assert 'Invalid password' in rv.data
Проверка role
def test_valid_admin_role(self): self.authenticate() r = self._get("/admin") self.assertIn(b'Admin Page', r.data) def test_invalid_admin_role(self): self.authenticate("joe@lp.com") r = self._get("/admin", follow_redirects=True) self.assertIsHomePage(r.data) def test_roles_accepted(self): for user in ("matt@lp.com", "joe@lp.com"): self.authenticate(user) r = self._get("/admin_or_editor") self.assertIn(b'Admin or Editor Page', r.data) self.logout() self.authenticate("jill@lp.com") r = self._get("/admin_or_editor", follow_redirects=True) self.assertIsHomePage(r.data)
Полезная ссылка с наборами тестов: https://github.com/mattupstate/flask-security/blob/develop/tests/functional_tests.py