test_session.py 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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.post_json('/api/v2/sessions/logout', status=204)
  7. res = self.testapp.get('/api/v2/sessions/logout', status=204)
  8. class TestLoginEndpoint(FunctionalTest):
  9. def test_login_ok(self):
  10. params = {
  11. 'email': 'admin@admin.admin',
  12. 'password': 'admin@admin.admin',
  13. }
  14. res = self.testapp.post_json(
  15. '/api/v2/sessions/login',
  16. params=params,
  17. status=204,
  18. )
  19. def test_bad_password(self):
  20. params = {
  21. 'email': 'admin@admin.admin',
  22. 'password': 'bad_password',
  23. }
  24. res = self.testapp.post_json(
  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.post_json(
  35. '/api/v2/sessions/login',
  36. status=400,
  37. params=params,
  38. )
  39. def test_uncomplete(self):
  40. res = self.testapp.post_json('/api/v2/sessions/login', status=400)
  41. class TestWhoamiEndpoint(FunctionalTest):
  42. def test_whoami_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. assert res.json_body['caldav_url'] is None
  59. assert res.json_body['avatar_url'] is None
  60. def test_unauthenticated(self):
  61. self.testapp.authorization = (
  62. 'Basic',
  63. (
  64. 'john@doe.doe',
  65. 'lapin'
  66. )
  67. )
  68. res = self.testapp.get('/api/v2/sessions/whoami', status=401)