test_session.py 2.2KB

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