4
4
from flask_restplus ._http import HTTPStatus
5
5
from pytest_mock import MockFixture
6
6
7
- from time_tracker_api .security import current_user_tenant_id
8
-
9
7
fake = Faker ()
10
8
11
9
valid_activity_data = {
@@ -36,34 +34,45 @@ def test_create_activity_should_succeed_with_valid_request(client: FlaskClient,
36
34
repository_create_mock .assert_called_once ()
37
35
38
36
39
- def test_create_activity_should_reject_bad_request (client : FlaskClient , mocker : MockFixture ):
37
+ def test_create_activity_should_reject_bad_request (client : FlaskClient ,
38
+ mocker : MockFixture ,
39
+ valid_header : dict ):
40
40
from time_tracker_api .activities .activities_namespace import activity_dao
41
41
repository_create_mock = mocker .patch .object (activity_dao .repository ,
42
42
'create' ,
43
43
return_value = fake_activity )
44
44
45
- response = client .post ("/activities" , json = None , follow_redirects = True )
45
+ response = client .post ("/activities" ,
46
+ headers = valid_header ,
47
+ json = None ,
48
+ follow_redirects = True )
46
49
47
50
assert HTTPStatus .BAD_REQUEST == response .status_code
48
51
repository_create_mock .assert_not_called ()
49
52
50
53
51
- def test_list_all_activities (client : FlaskClient , mocker : MockFixture ):
54
+ def test_list_all_activities (client : FlaskClient ,
55
+ mocker : MockFixture ,
56
+ tenant_id : str ,
57
+ valid_header : dict ):
52
58
from time_tracker_api .activities .activities_namespace import activity_dao
53
59
repository_find_all_mock = mocker .patch .object (activity_dao .repository ,
54
60
'find_all' ,
55
61
return_value = [])
56
62
57
- response = client .get ("/activities" , follow_redirects = True )
63
+ response = client .get ("/activities" ,
64
+ headers = valid_header ,
65
+ follow_redirects = True )
58
66
59
67
assert HTTPStatus .OK == response .status_code
60
68
json_data = json .loads (response .data )
61
69
assert [] == json_data
62
- repository_find_all_mock .assert_called_once ( )
70
+ repository_find_all_mock .assert_called_once_with ( partition_key_value = tenant_id )
63
71
64
72
65
73
def test_get_activity_should_succeed_with_valid_id (client : FlaskClient ,
66
74
mocker : MockFixture ,
75
+ tenant_id : str ,
67
76
valid_header : dict ):
68
77
from time_tracker_api .activities .activities_namespace import activity_dao
69
78
@@ -79,12 +88,12 @@ def test_get_activity_should_succeed_with_valid_id(client: FlaskClient,
79
88
80
89
assert HTTPStatus .OK == response .status_code
81
90
fake_activity == json .loads (response .data )
82
- repository_find_mock .assert_called_once_with (str (valid_id ),
83
- partition_key_value = current_user_tenant_id ())
91
+ repository_find_mock .assert_called_once_with (str (valid_id ), partition_key_value = tenant_id )
84
92
85
93
86
94
def test_get_activity_should_return_not_found_with_invalid_id (client : FlaskClient ,
87
95
mocker : MockFixture ,
96
+ tenant_id : str ,
88
97
valid_header : dict ):
89
98
from time_tracker_api .activities .activities_namespace import activity_dao
90
99
from werkzeug .exceptions import NotFound
@@ -101,10 +110,11 @@ def test_get_activity_should_return_not_found_with_invalid_id(client: FlaskClien
101
110
102
111
assert HTTPStatus .NOT_FOUND == response .status_code
103
112
repository_find_mock .assert_called_once_with (str (invalid_id ),
104
- partition_key_value = current_user_tenant_id () )
113
+ partition_key_value = tenant_id )
105
114
106
115
107
- def test_get_activity_should_return_422_for_invalid_id_format (client : FlaskClient , mocker : MockFixture ):
116
+ def test_get_activity_should_return_422_for_invalid_id_format (client : FlaskClient ,
117
+ mocker : MockFixture ):
108
118
from time_tracker_api .activities .activities_namespace import activity_dao
109
119
from werkzeug .exceptions import UnprocessableEntity
110
120
@@ -117,41 +127,54 @@ def test_get_activity_should_return_422_for_invalid_id_format(client: FlaskClien
117
127
response = client .get ("/activities/%s" % invalid_id , follow_redirects = True )
118
128
119
129
assert HTTPStatus .UNPROCESSABLE_ENTITY == response .status_code
120
- repository_find_mock .assert_called_once_with (str (invalid_id ),
121
- partition_key_value = current_user_tenant_id ())
130
+ repository_find_mock .assert_not_called ()
122
131
123
132
124
- def test_update_activity_should_succeed_with_valid_data (client : FlaskClient , mocker : MockFixture ):
133
+ def test_update_activity_should_succeed_with_valid_data (client : FlaskClient ,
134
+ tenant_id : str ,
135
+ mocker : MockFixture ,
136
+ valid_header : dict ):
125
137
from time_tracker_api .activities .activities_namespace import activity_dao
126
138
127
139
repository_update_mock = mocker .patch .object (activity_dao .repository ,
128
140
'partial_update' ,
129
141
return_value = fake_activity )
130
142
131
- valid_id = fake .random_int (1 , 9999 )
132
- response = client .put ("/activities/%s" % valid_id , json = valid_activity_data , follow_redirects = True )
143
+ valid_id = fake .uuid4 ()
144
+ response = client .put ("/activities/%s" % valid_id ,
145
+ headers = valid_header ,
146
+ json = valid_activity_data ,
147
+ follow_redirects = True )
133
148
134
149
assert HTTPStatus .OK == response .status_code
135
150
fake_activity == json .loads (response .data )
136
151
repository_update_mock .assert_called_once_with (str (valid_id ),
137
152
changes = valid_activity_data ,
138
- partition_key_value = current_user_tenant_id () )
153
+ partition_key_value = tenant_id )
139
154
140
155
141
- def test_update_activity_should_reject_bad_request (client : FlaskClient , mocker : MockFixture ):
156
+ def test_update_activity_should_reject_bad_request (client : FlaskClient ,
157
+ mocker : MockFixture ,
158
+ valid_header : dict ):
142
159
from time_tracker_api .activities .activities_namespace import activity_dao
143
160
repository_update_mock = mocker .patch .object (activity_dao .repository ,
144
161
'partial_update' ,
145
162
return_value = fake_activity )
146
163
147
164
valid_id = fake .random_int (1 , 9999 )
148
- response = client .put ("/activities/%s" % valid_id , json = None , follow_redirects = True )
165
+ response = client .put ("/activities/%s" % valid_id ,
166
+ headers = valid_header ,
167
+ json = None ,
168
+ follow_redirects = True )
149
169
150
170
assert HTTPStatus .BAD_REQUEST == response .status_code
151
171
repository_update_mock .assert_not_called ()
152
172
153
173
154
- def test_update_activity_should_return_not_found_with_invalid_id (client : FlaskClient , mocker : MockFixture ):
174
+ def test_update_activity_should_return_not_found_with_invalid_id (client : FlaskClient ,
175
+ tenant_id : str ,
176
+ mocker : MockFixture ,
177
+ valid_header : dict ):
155
178
from time_tracker_api .activities .activities_namespace import activity_dao
156
179
from werkzeug .exceptions import NotFound
157
180
@@ -162,16 +185,20 @@ def test_update_activity_should_return_not_found_with_invalid_id(client: FlaskCl
162
185
side_effect = NotFound )
163
186
164
187
response = client .put ("/activities/%s" % invalid_id ,
188
+ headers = valid_header ,
165
189
json = valid_activity_data ,
166
190
follow_redirects = True )
167
191
168
192
assert HTTPStatus .NOT_FOUND == response .status_code
169
193
repository_update_mock .assert_called_once_with (str (invalid_id ),
170
194
changes = valid_activity_data ,
171
- partition_key_value = current_user_tenant_id () )
195
+ partition_key_value = tenant_id )
172
196
173
197
174
- def test_delete_activity_should_succeed_with_valid_id (client : FlaskClient , mocker : MockFixture ):
198
+ def test_delete_activity_should_succeed_with_valid_id (client : FlaskClient ,
199
+ mocker : MockFixture ,
200
+ tenant_id : str ,
201
+ valid_header : dict ):
175
202
from time_tracker_api .activities .activities_namespace import activity_dao
176
203
177
204
valid_id = fake .random_int (1 , 9999 )
@@ -180,15 +207,20 @@ def test_delete_activity_should_succeed_with_valid_id(client: FlaskClient, mocke
180
207
'delete' ,
181
208
return_value = None )
182
209
183
- response = client .delete ("/activities/%s" % valid_id , follow_redirects = True )
210
+ response = client .delete ("/activities/%s" % valid_id ,
211
+ headers = valid_header ,
212
+ follow_redirects = True )
184
213
185
214
assert HTTPStatus .NO_CONTENT == response .status_code
186
215
assert b'' == response .data
187
216
repository_remove_mock .assert_called_once_with (str (valid_id ),
188
- partition_key_value = current_user_tenant_id () )
217
+ partition_key_value = tenant_id )
189
218
190
219
191
- def test_delete_activity_should_return_not_found_with_invalid_id (client : FlaskClient , mocker : MockFixture ):
220
+ def test_delete_activity_should_return_not_found_with_invalid_id (client : FlaskClient ,
221
+ mocker : MockFixture ,
222
+ tenant_id : str ,
223
+ valid_header : dict ):
192
224
from time_tracker_api .activities .activities_namespace import activity_dao
193
225
from werkzeug .exceptions import NotFound
194
226
@@ -198,14 +230,19 @@ def test_delete_activity_should_return_not_found_with_invalid_id(client: FlaskCl
198
230
'delete' ,
199
231
side_effect = NotFound )
200
232
201
- response = client .delete ("/activities/%s" % invalid_id , follow_redirects = True )
233
+ response = client .delete ("/activities/%s" % invalid_id ,
234
+ headers = valid_header ,
235
+ follow_redirects = True )
202
236
203
237
assert HTTPStatus .NOT_FOUND == response .status_code
204
238
repository_remove_mock .assert_called_once_with (str (invalid_id ),
205
- partition_key_value = current_user_tenant_id () )
239
+ partition_key_value = tenant_id )
206
240
207
241
208
- def test_delete_activity_should_return_422_for_invalid_id_format (client : FlaskClient , mocker : MockFixture ):
242
+ def test_delete_activity_should_return_422_for_invalid_id_format (client : FlaskClient ,
243
+ mocker : MockFixture ,
244
+ tenant_id : str ,
245
+ valid_header : dict ):
209
246
from time_tracker_api .activities .activities_namespace import activity_dao
210
247
from werkzeug .exceptions import UnprocessableEntity
211
248
@@ -215,8 +252,10 @@ def test_delete_activity_should_return_422_for_invalid_id_format(client: FlaskCl
215
252
'delete' ,
216
253
side_effect = UnprocessableEntity )
217
254
218
- response = client .delete ("/activities/%s" % invalid_id , follow_redirects = True )
255
+ response = client .delete ("/activities/%s" % invalid_id ,
256
+ headers = valid_header ,
257
+ follow_redirects = True )
219
258
220
259
assert HTTPStatus .UNPROCESSABLE_ENTITY == response .status_code
221
260
repository_remove_mock .assert_called_once_with (str (invalid_id ),
222
- partition_key_value = current_user_tenant_id () )
261
+ partition_key_value = tenant_id )
0 commit comments