test_user_api.py 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. from sqlalchemy.orm.exc import NoResultFound
  4. import transaction
  5. from tracim.lib.core.user import UserApi
  6. from tracim.tests import DefaultTest
  7. from tracim.tests import eq_
  8. class TestUserApi(DefaultTest):
  9. def test_create_and_update_user(self):
  10. api = UserApi(
  11. current_user=None,
  12. session=self.session,
  13. config=self.config,
  14. )
  15. u = api.create_minimal_user()
  16. api.update(u, 'bob', 'bob@bob', True)
  17. nu = api.get_one_by_email('bob@bob')
  18. assert nu != None
  19. eq_('bob@bob', nu.email)
  20. eq_('bob', nu.display_name)
  21. def test_user_with_email_exists(self):
  22. api = UserApi(
  23. current_user=None,
  24. session=self.session,
  25. config=self.config,
  26. )
  27. u = api.create_minimal_user()
  28. api.update(u, 'bibi', 'bibi@bibi', True)
  29. transaction.commit()
  30. eq_(True, api.user_with_email_exists('bibi@bibi'))
  31. eq_(False, api.user_with_email_exists('unknown'))
  32. def test_get_one_by_email(self):
  33. api = UserApi(
  34. current_user=None,
  35. session=self.session,
  36. config=self.config,
  37. )
  38. u = api.create_minimal_user()
  39. self.session.flush()
  40. api.update(u, 'bibi', 'bibi@bibi', True)
  41. uid = u.user_id
  42. transaction.commit()
  43. eq_(uid, api.get_one_by_email('bibi@bibi').user_id)
  44. def test_get_one_by_email_exception(self):
  45. api = UserApi(
  46. current_user=None,
  47. session=self.session,
  48. config=self.config,
  49. )
  50. with pytest.raises(NoResultFound):
  51. api.get_one_by_email('unknown')
  52. def test_get_all(self):
  53. # TODO - G.M - 29-03-2018 Check why this method is not enabled
  54. api = UserApi(
  55. current_user=None,
  56. session=self.session,
  57. config=self.config,
  58. )
  59. # u1 = api.create_minimal_user(True)
  60. # u2 = api.create_minimal_user(True)
  61. # users = api.get_all()
  62. # ok_(2==len(users))
  63. def test_get_one(self):
  64. api = UserApi(
  65. current_user=None,
  66. session=self.session,
  67. config=self.config,
  68. )
  69. u = api.create_minimal_user()
  70. api.update(u, 'titi', 'titi@titi', True)
  71. one = api.get_one(u.user_id)
  72. eq_(u.user_id, one.user_id)