test_session.py 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. # coding=utf-8
  2. import pytest
  3. from tracim.tests import FunctionalTest
  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 TestLoginEndpoint(FunctionalTest):
  10. def test_api__try_login_enpoint__ok_204__nominal_case(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=204,
  19. )
  20. def test_api__try_login_enpoint__err_400__bad_password(self):
  21. params = {
  22. 'email': 'admin@admin.admin',
  23. 'password': 'bad_password',
  24. }
  25. res = self.testapp.post_json(
  26. '/api/v2/sessions/login',
  27. status=400,
  28. params=params,
  29. )
  30. def test_api__try_login_enpoint__err_400__unregistered_user(self):
  31. params = {
  32. 'email': 'unknown_user@unknown.unknown',
  33. 'password': 'bad_password',
  34. }
  35. res = self.testapp.post_json(
  36. '/api/v2/sessions/login',
  37. status=400,
  38. params=params,
  39. )
  40. def test_api__try_login_enpoint__err_400__no_json_body(self):
  41. res = self.testapp.post_json('/api/v2/sessions/login', status=400)
  42. class TestWhoamiEndpoint(FunctionalTest):
  43. def test_api__try_whoami_enpoint__ok_200__nominal_case(self):
  44. self.testapp.authorization = (
  45. 'Basic',
  46. (
  47. 'admin@admin.admin',
  48. 'admin@admin.admin'
  49. )
  50. )
  51. res = self.testapp.get('/api/v2/sessions/whoami', status=200)
  52. assert res.json_body['display_name'] == 'Global manager'
  53. assert res.json_body['email'] == 'admin@admin.admin'
  54. assert res.json_body['created']
  55. assert res.json_body['is_active']
  56. assert res.json_body['profile']
  57. assert isinstance(res.json_body['profile']['id'], int)
  58. assert res.json_body['profile']['slug'] == 'administrators'
  59. assert res.json_body['caldav_url'] is None
  60. assert res.json_body['avatar_url'] is None
  61. def test_api__try_whoami_enpoint__err_401__unauthenticated(self):
  62. self.testapp.authorization = (
  63. 'Basic',
  64. (
  65. 'john@doe.doe',
  66. 'lapin'
  67. )
  68. )
  69. res = self.testapp.get('/api/v2/sessions/whoami', status=401)