test_session.py 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. # coding=utf-8
  2. from tracim.tests import FunctionalTest
  3. class TestLogoutEndpoint(FunctionalTest):
  4. def test_logout(self):
  5. res = self.testapp.get('/api/v2/sessions/logout', status=200)
  6. assert res.json_body == {'message': 'ok'}
  7. class TestLoginEndpoint(FunctionalTest):
  8. def test_login_ok(self):
  9. params = {
  10. 'email': 'admin@admin.admin',
  11. 'password': 'admin@admin.admin',
  12. }
  13. res = self.testapp.get(
  14. '/api/v2/sessions/login',
  15. status=200,
  16. params=params
  17. )
  18. assert res.json_body == {'message': 'ok'}
  19. def test_bad_password(self):
  20. params = {
  21. 'email': 'admin@admin.admin',
  22. 'password': 'bad_password',
  23. }
  24. res = self.testapp.get(
  25. '/api/v2/sessions/login',
  26. status=400,
  27. params=params,
  28. )
  29. def test_bad_user(self):
  30. params = {
  31. 'email': 'unknown_user@unknown.unknown',
  32. 'password': 'bad_password',
  33. }
  34. res = self.testapp.get(
  35. '/api/v2/sessions/login',
  36. status=400,
  37. params=params,
  38. )
  39. def test_uncomplete(self):
  40. res = self.testapp.get('/api/v2/sessions/login', status=400)
  41. class TestWhoamiEndpoint(FunctionalTest):
  42. def test_login_ok(self):
  43. self.testapp.authorization = (
  44. 'Basic',
  45. (
  46. 'admin@admin.admin',
  47. 'admin@admin.admin'
  48. )
  49. )
  50. res = self.testapp.get('/api/v2/sessions/whoami', status=200)
  51. assert res.json_body['display_name'] == 'Global manager'
  52. assert res.json_body['email'] == 'admin@admin.admin'
  53. assert res.json_body['created']
  54. assert res.json_body['is_active']
  55. assert res.json_body['profile']
  56. assert isinstance(res.json_body['profile']['id'], int)
  57. assert res.json_body['profile']['slug'] == 'administrators'
  58. def test_unauthenticated(self):
  59. self.testapp.authorization = (
  60. 'Basic',
  61. (
  62. 'john@doe.doe',
  63. 'lapin'
  64. )
  65. )
  66. res = self.testapp.get('/api/v2/sessions/whoami', status=401)