44from flask_restplus ._http import HTTPStatus
55from pytest_mock import MockFixture
66
7- from time_tracker_api .security import current_user_tenant_id
8-
97fake = Faker ()
108
119valid_activity_data = {
@@ -36,34 +34,45 @@ def test_create_activity_should_succeed_with_valid_request(client: FlaskClient,
3634 repository_create_mock .assert_called_once ()
3735
3836
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 ):
4040 from time_tracker_api .activities .activities_namespace import activity_dao
4141 repository_create_mock = mocker .patch .object (activity_dao .repository ,
4242 'create' ,
4343 return_value = fake_activity )
4444
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 )
4649
4750 assert HTTPStatus .BAD_REQUEST == response .status_code
4851 repository_create_mock .assert_not_called ()
4952
5053
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 ):
5258 from time_tracker_api .activities .activities_namespace import activity_dao
5359 repository_find_all_mock = mocker .patch .object (activity_dao .repository ,
5460 'find_all' ,
5561 return_value = [])
5662
57- response = client .get ("/activities" , follow_redirects = True )
63+ response = client .get ("/activities" ,
64+ headers = valid_header ,
65+ follow_redirects = True )
5866
5967 assert HTTPStatus .OK == response .status_code
6068 json_data = json .loads (response .data )
6169 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 )
6371
6472
6573def test_get_activity_should_succeed_with_valid_id (client : FlaskClient ,
6674 mocker : MockFixture ,
75+ tenant_id : str ,
6776 valid_header : dict ):
6877 from time_tracker_api .activities .activities_namespace import activity_dao
6978
@@ -79,12 +88,12 @@ def test_get_activity_should_succeed_with_valid_id(client: FlaskClient,
7988
8089 assert HTTPStatus .OK == response .status_code
8190 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 )
8492
8593
8694def test_get_activity_should_return_not_found_with_invalid_id (client : FlaskClient ,
8795 mocker : MockFixture ,
96+ tenant_id : str ,
8897 valid_header : dict ):
8998 from time_tracker_api .activities .activities_namespace import activity_dao
9099 from werkzeug .exceptions import NotFound
@@ -101,10 +110,11 @@ def test_get_activity_should_return_not_found_with_invalid_id(client: FlaskClien
101110
102111 assert HTTPStatus .NOT_FOUND == response .status_code
103112 repository_find_mock .assert_called_once_with (str (invalid_id ),
104- partition_key_value = current_user_tenant_id () )
113+ partition_key_value = tenant_id )
105114
106115
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 ):
108118 from time_tracker_api .activities .activities_namespace import activity_dao
109119 from werkzeug .exceptions import UnprocessableEntity
110120
@@ -117,41 +127,54 @@ def test_get_activity_should_return_422_for_invalid_id_format(client: FlaskClien
117127 response = client .get ("/activities/%s" % invalid_id , follow_redirects = True )
118128
119129 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 ()
122131
123132
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 ):
125137 from time_tracker_api .activities .activities_namespace import activity_dao
126138
127139 repository_update_mock = mocker .patch .object (activity_dao .repository ,
128140 'partial_update' ,
129141 return_value = fake_activity )
130142
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 )
133148
134149 assert HTTPStatus .OK == response .status_code
135150 fake_activity == json .loads (response .data )
136151 repository_update_mock .assert_called_once_with (str (valid_id ),
137152 changes = valid_activity_data ,
138- partition_key_value = current_user_tenant_id () )
153+ partition_key_value = tenant_id )
139154
140155
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 ):
142159 from time_tracker_api .activities .activities_namespace import activity_dao
143160 repository_update_mock = mocker .patch .object (activity_dao .repository ,
144161 'partial_update' ,
145162 return_value = fake_activity )
146163
147164 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 )
149169
150170 assert HTTPStatus .BAD_REQUEST == response .status_code
151171 repository_update_mock .assert_not_called ()
152172
153173
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 ):
155178 from time_tracker_api .activities .activities_namespace import activity_dao
156179 from werkzeug .exceptions import NotFound
157180
@@ -162,16 +185,20 @@ def test_update_activity_should_return_not_found_with_invalid_id(client: FlaskCl
162185 side_effect = NotFound )
163186
164187 response = client .put ("/activities/%s" % invalid_id ,
188+ headers = valid_header ,
165189 json = valid_activity_data ,
166190 follow_redirects = True )
167191
168192 assert HTTPStatus .NOT_FOUND == response .status_code
169193 repository_update_mock .assert_called_once_with (str (invalid_id ),
170194 changes = valid_activity_data ,
171- partition_key_value = current_user_tenant_id () )
195+ partition_key_value = tenant_id )
172196
173197
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 ):
175202 from time_tracker_api .activities .activities_namespace import activity_dao
176203
177204 valid_id = fake .random_int (1 , 9999 )
@@ -180,15 +207,20 @@ def test_delete_activity_should_succeed_with_valid_id(client: FlaskClient, mocke
180207 'delete' ,
181208 return_value = None )
182209
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 )
184213
185214 assert HTTPStatus .NO_CONTENT == response .status_code
186215 assert b'' == response .data
187216 repository_remove_mock .assert_called_once_with (str (valid_id ),
188- partition_key_value = current_user_tenant_id () )
217+ partition_key_value = tenant_id )
189218
190219
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 ):
192224 from time_tracker_api .activities .activities_namespace import activity_dao
193225 from werkzeug .exceptions import NotFound
194226
@@ -198,14 +230,19 @@ def test_delete_activity_should_return_not_found_with_invalid_id(client: FlaskCl
198230 'delete' ,
199231 side_effect = NotFound )
200232
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 )
202236
203237 assert HTTPStatus .NOT_FOUND == response .status_code
204238 repository_remove_mock .assert_called_once_with (str (invalid_id ),
205- partition_key_value = current_user_tenant_id () )
239+ partition_key_value = tenant_id )
206240
207241
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 ):
209246 from time_tracker_api .activities .activities_namespace import activity_dao
210247 from werkzeug .exceptions import UnprocessableEntity
211248
@@ -215,8 +252,10 @@ def test_delete_activity_should_return_422_for_invalid_id_format(client: FlaskCl
215252 'delete' ,
216253 side_effect = UnprocessableEntity )
217254
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 )
219258
220259 assert HTTPStatus .UNPROCESSABLE_ENTITY == response .status_code
221260 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