test_session.py 3.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # coding=utf-8
  2. from tracim.tests import FunctionalTest
  3. from tracim.tests import FunctionalTestNoDB
  4. class TestLogoutEndpoint(FunctionalTest):
  5. def test_api__access_logout_get_enpoint__ok__nominal_case(self):
  6. res = self.testapp.post_json('/api/v2/sessions/logout', status=204)
  7. def test_api__access_logout_post_enpoint__ok__nominal_case(self):
  8. res = self.testapp.get('/api/v2/sessions/logout', status=204)
  9. class TestLoginEndpointUnititedDB(FunctionalTestNoDB):
  10. def test_api__try_login_enpoint__err_500__no_inited_db(self):
  11. params = {
  12. 'email': 'admin@admin.admin',
  13. 'password': 'admin@admin.admin',
  14. }
  15. res = self.testapp.post_json(
  16. '/api/v2/sessions/login',
  17. params=params,
  18. status=500,
  19. )
  20. class TestLoginEndpoint(FunctionalTest):
  21. def test_api__try_login_enpoint__ok_204__nominal_case(self):
  22. params = {
  23. 'email': 'admin@admin.admin',
  24. 'password': 'admin@admin.admin',
  25. }
  26. res = self.testapp.post_json(
  27. '/api/v2/sessions/login',
  28. params=params,
  29. status=204,
  30. )
  31. def test_api__try_login_enpoint__err_400__bad_password(self):
  32. params = {
  33. 'email': 'admin@admin.admin',
  34. 'password': 'bad_password',
  35. }
  36. res = self.testapp.post_json(
  37. '/api/v2/sessions/login',
  38. status=400,
  39. params=params,
  40. )
  41. def test_api__try_login_enpoint__err_400__unregistered_user(self):
  42. params = {
  43. 'email': 'unknown_user@unknown.unknown',
  44. 'password': 'bad_password',
  45. }
  46. res = self.testapp.post_json(
  47. '/api/v2/sessions/login',
  48. status=400,
  49. params=params,
  50. )
  51. def test_api__try_login_enpoint__err_400__no_json_body(self):
  52. res = self.testapp.post_json('/api/v2/sessions/login', status=400)
  53. class TestWhoamiEndpoint(FunctionalTest):
  54. def test_api__try_whoami_enpoint__ok_200__nominal_case(self):
  55. self.testapp.authorization = (
  56. 'Basic',
  57. (
  58. 'admin@admin.admin',
  59. 'admin@admin.admin'
  60. )
  61. )
  62. res = self.testapp.get('/api/v2/sessions/whoami', status=200)
  63. assert res.json_body['display_name'] == 'Global manager'
  64. assert res.json_body['email'] == 'admin@admin.admin'
  65. assert res.json_body['created']
  66. assert res.json_body['is_active']
  67. assert res.json_body['profile']
  68. assert isinstance(res.json_body['profile']['id'], int)
  69. assert res.json_body['profile']['slug'] == 'administrators'
  70. assert res.json_body['caldav_url'] is None
  71. assert res.json_body['avatar_url'] is None
  72. def test_api__try_whoami_enpoint__err_401__unauthenticated(self):
  73. self.testapp.authorization = (
  74. 'Basic',
  75. (
  76. 'john@doe.doe',
  77. 'lapin'
  78. )
  79. )
  80. res = self.testapp.get('/api/v2/sessions/whoami', status=401)