Browse Source

add new tests and renaming for user_api

Guénaël Muller 6 years ago
parent
commit
2dd7f54f8c
1 changed files with 86 additions and 15 deletions
  1. 86 15
      tracim/tests/library/test_user_api.py

+ 86 - 15
tracim/tests/library/test_user_api.py View File

4
 
4
 
5
 import transaction
5
 import transaction
6
 
6
 
7
+from tracim.exceptions import UserNotExist, AuthenticationFailed
7
 from tracim.lib.core.user import UserApi
8
 from tracim.lib.core.user import UserApi
9
+from tracim.models import User
10
+from tracim.models.context_models import UserInContext
8
 from tracim.tests import DefaultTest
11
 from tracim.tests import DefaultTest
9
 from tracim.tests import eq_
12
 from tracim.tests import eq_
10
 
13
 
11
 
14
 
12
 class TestUserApi(DefaultTest):
15
 class TestUserApi(DefaultTest):
13
 
16
 
14
-    def test_create_and_update_user(self):
17
+    def test_unit__create_and_update_user__ok__nominal_case(self):
15
         api = UserApi(
18
         api = UserApi(
16
             current_user=None,
19
             current_user=None,
17
             session=self.session,
20
             session=self.session,
25
         eq_('bob@bob', nu.email)
28
         eq_('bob@bob', nu.email)
26
         eq_('bob', nu.display_name)
29
         eq_('bob', nu.display_name)
27
 
30
 
28
-    def test_user_with_email_exists(self):
31
+    def test_unit__user_with_email_exists__ok__nominal_case(self):
29
         api = UserApi(
32
         api = UserApi(
30
             current_user=None,
33
             current_user=None,
31
             session=self.session,
34
             session=self.session,
38
         eq_(True, api.user_with_email_exists('bibi@bibi'))
41
         eq_(True, api.user_with_email_exists('bibi@bibi'))
39
         eq_(False, api.user_with_email_exists('unknown'))
42
         eq_(False, api.user_with_email_exists('unknown'))
40
 
43
 
41
-    def test_get_one_by_email(self):
44
+    def test_unit__get_one_by_email__ok__nominal_case(self):
42
         api = UserApi(
45
         api = UserApi(
43
             current_user=None,
46
             current_user=None,
44
             session=self.session,
47
             session=self.session,
51
 
54
 
52
         eq_(uid, api.get_one_by_email('bibi@bibi').user_id)
55
         eq_(uid, api.get_one_by_email('bibi@bibi').user_id)
53
 
56
 
54
-    def test_get_one_by_email_exception(self):
57
+    def test_unit__get_one_by_email__err__user_does_not_exist(self):
55
         api = UserApi(
58
         api = UserApi(
56
             current_user=None,
59
             current_user=None,
57
             session=self.session,
60
             session=self.session,
60
         with pytest.raises(NoResultFound):
63
         with pytest.raises(NoResultFound):
61
             api.get_one_by_email('unknown')
64
             api.get_one_by_email('unknown')
62
 
65
 
63
-    def test_get_all(self):
64
-        # TODO - G.M - 29-03-2018 Check why this method is not enabled
66
+    # def test_unit__get_all__ok__nominal_case(self):
67
+    #     # TODO - G.M - 29-03-2018 Check why this method is not enabled
68
+    #     api = UserApi(
69
+    #         current_user=None,
70
+    #         session=self.session,
71
+    #         config=self.config,
72
+    #     )
73
+    #     u1 = api.create_user(True)
74
+    #     u2 = api.create_user(True)
75
+    #     users = api.get_all()
76
+    #     assert 2==len(users)
77
+
78
+    def test_unit__get_one__ok__nominal_case(self):
65
         api = UserApi(
79
         api = UserApi(
66
             current_user=None,
80
             current_user=None,
67
             session=self.session,
81
             session=self.session,
68
             config=self.config,
82
             config=self.config,
69
         )
83
         )
70
-        # u1 = api.create_user(True)
71
-        # u2 = api.create_user(True)
84
+        u = api.create_user()
85
+        api.update(u, 'titi', 'titi@titi', True)
86
+        one = api.get_one(u.user_id)
87
+        eq_(u.user_id, one.user_id)
72
 
88
 
73
-        # users = api.get_all()
74
-        # ok_(2==len(users))
89
+    def test_unit__get_correct_user_type__ok__no_context(self):
90
+        user = User(email='admin@tracim.tracim')
91
+        api = UserApi(
92
+            current_user=None,
93
+            session=self.session,
94
+            config=self.config,
95
+        )
96
+        new_user = api._get_correct_user_type(user, in_context=False)
97
+        assert isinstance(new_user, User)
98
+        assert user == new_user
75
 
99
 
76
-    def test_get_one(self):
100
+    def test_unit__get_correct_user_type__ok__with_context(self):
101
+        user = User(email='admin@tracim.tracim')
77
         api = UserApi(
102
         api = UserApi(
78
             current_user=None,
103
             current_user=None,
79
             session=self.session,
104
             session=self.session,
80
             config=self.config,
105
             config=self.config,
81
         )
106
         )
82
-        u = api.create_user()
83
-        api.update(u, 'titi', 'titi@titi', True)
84
-        one = api.get_one(u.user_id)
85
-        eq_(u.user_id, one.user_id)
107
+        new_user = api._get_correct_user_type(user, in_context=True)
108
+        assert isinstance(new_user, UserInContext)
109
+        assert user != new_user
110
+        assert new_user.user == user
111
+
112
+    def test_unit__get_current__ok__nominal_case(self):
113
+        user = User(email='admin@tracim.tracim')
114
+        api = UserApi(
115
+            current_user=user,
116
+            session=self.session,
117
+            config=self.config,
118
+        )
119
+        assert api.get_current().email == 'admin@tracim.tracim'
120
+
121
+    def test_unit__get_current__err__user_not_exist(self):
122
+        api = UserApi(
123
+            current_user=None,
124
+            session=self.session,
125
+            config=self.config,
126
+        )
127
+        with pytest.raises(UserNotExist):
128
+            api.get_current()
129
+
130
+    def test_unit__authenticate_user___ok__nominal_case(self):
131
+        api = UserApi(
132
+            current_user=None,
133
+            session=self.session,
134
+            config=self.config,
135
+        )
136
+        user = api.authenticate_user('admin@admin.admin', 'admin@admin.admin')
137
+        assert isinstance(user, User)
138
+        assert user.email == 'admin@admin.admin'
139
+
140
+    def test_unit__authenticate_user___err__bad_password(self):
141
+        api = UserApi(
142
+            current_user=None,
143
+            session=self.session,
144
+            config=self.config,
145
+        )
146
+        with pytest.raises(AuthenticationFailed):
147
+            api.authenticate_user('admin@admin.admin', 'bad_password')
148
+
149
+    def test_unit__authenticate_user___err__bad_user(self):
150
+        api = UserApi(
151
+            current_user=None,
152
+            session=self.session,
153
+            config=self.config,
154
+        )
155
+        with pytest.raises(AuthenticationFailed):
156
+            api.authenticate_user('unknown_user', 'bad_password')