@@ -13,16 +13,6 @@ def setup(self, client):
1313 with client .application .app_context ():
1414 assert Category .query .count () == 0
1515
16- @pytest .fixture
17- def create_authenticated_headers (self , register_user , login_user ):
18- def _get_headers (
email = "[email protected] " ,
password = "testpassword" ):
19- register_user (email , password )
20- resp = login_user (email , password )
21- tokens = resp .get_json ()
22- return utils .get_auth_header (tokens ["access_token" ])
23-
24- return _get_headers
25-
2616 @pytest .fixture
2717 def create_category (self , create_authenticated_headers ):
2818 def _create (name , headers = None ):
@@ -118,124 +108,63 @@ def test_delete_category(self, create_authenticated_headers, create_category):
118108 assert get_resp .status_code == 404
119109 self ._verify_category_in_db ("ToDelete" , should_exist = False )
120110
121- def test_create_category_expired_token (self ):
122- headers = utils .get_expired_token_headers (self .client .application .app_context ())
111+ @pytest .mark .parametrize (
112+ "get_headers, expected_code" ,
113+ [
114+ (lambda self : utils .get_expired_token_headers (self .client .application .app_context ()), "token_expired" ),
115+ (lambda self : utils .get_invalid_token_headers (), "invalid_token" ),
116+ (lambda self : None , "authorization_required" )
117+ ]
118+ )
119+ def test_create_category_token_error (self , get_headers , expected_code ):
120+ headers = get_headers (self )
123121 response = self .client .post (
124- "/category/create" , json = {"name" : "TestExpired" }, headers = headers
125- )
126-
127- utils .verify_token_error_response (response , "token_expired" )
128- self ._verify_category_in_db ("TestExpired" , should_exist = False )
129-
130- def test_create_category_invalid_token (self ):
131- headers = utils .get_invalid_token_headers ()
132- response = self .client .post (
133- "/category/create" , json = {"name" : "TestInvalid" }, headers = headers
134- )
135-
136- utils .verify_token_error_response (response , "invalid_token" )
137- self ._verify_category_in_db ("TestInvalid" , should_exist = False )
138-
139- def test_create_category_missing_token (self ):
140- response = self .client .post ("/category/create" , json = {"name" : "TestMissing" })
141- utils .verify_token_error_response (response , "authorization_required" )
142- self ._verify_category_in_db ("TestMissing" , should_exist = False )
143-
144- def test_update_category_expired_token (
145- self , create_category , create_authenticated_headers
146- ):
147- headers = create_authenticated_headers ()
148- response = create_category ("UpdateExpired" , headers )
149- data = response .get_json ()
150- cat_id = data ["id" ]
151-
152- expired_headers = utils .get_expired_token_headers (
153- self .client .application .app_context ()
122+ "/category/create" , json = {"name" : "CreateTokenError" }, headers = headers
154123 )
155- update_resp = self .client .put (
156- f"/category/{ cat_id } /update" ,
157- json = {"name" : "UpdatedName" },
158- headers = expired_headers ,
159- )
160-
161- utils .verify_token_error_response (update_resp , "token_expired" )
162- self ._verify_category_in_db ("UpdateExpired" )
163- self ._verify_category_in_db ("UpdatedName" , should_exist = False )
164-
165- def test_update_category_invalid_token (
166- self , create_category , create_authenticated_headers
167- ):
124+ utils .verify_token_error_response (response , expected_code )
125+ self ._verify_category_in_db ("CreateTokenError" , should_exist = False )
126+
127+ @pytest .mark .parametrize (
128+ "get_headers, expected_code" ,
129+ [
130+ (lambda self : utils .get_expired_token_headers (self .client .application .app_context ()), "token_expired" ),
131+ (lambda self : utils .get_invalid_token_headers (), "invalid_token" ),
132+ (lambda self : None , "authorization_required" )
133+ ]
134+ )
135+ def test_update_category_token_error (self , get_headers , create_category , create_authenticated_headers , expected_code ):
168136 headers = create_authenticated_headers ()
169- response = create_category ("UpdateInvalid " , headers )
137+ response = create_category ("UpdateTokenError " , headers )
170138 data = response .get_json ()
171139 cat_id = data ["id" ]
172140
173- invalid_headers = utils . get_invalid_token_headers ( )
141+ update_headers = get_headers ( self )
174142 update_resp = self .client .put (
175143 f"/category/{ cat_id } /update" ,
176144 json = {"name" : "UpdatedName" },
177- headers = invalid_headers ,
145+ headers = update_headers ,
178146 )
179147
180- utils .verify_token_error_response (update_resp , "invalid_token" )
181- self ._verify_category_in_db ("UpdateInvalid " )
148+ utils .verify_token_error_response (update_resp , expected_code )
149+ self ._verify_category_in_db ("UpdateTokenError " )
182150 self ._verify_category_in_db ("UpdatedName" , should_exist = False )
183151
184- def test_update_category_missing_token (
185- self , create_category , create_authenticated_headers
186- ):
187- headers = create_authenticated_headers ()
188- response = create_category ("UpdateMissing" , headers )
189- data = response .get_json ()
190- cat_id = data ["id" ]
191-
192- update_resp = self .client .put (
193- f"/category/{ cat_id } /update" , json = {"name" : "UpdatedName" }
194- )
195-
196- utils .verify_token_error_response (update_resp , "authorization_required" )
197- self ._verify_category_in_db ("UpdateMissing" )
198- self ._verify_category_in_db ("UpdatedName" , should_exist = False )
199-
200- def test_delete_category_expired_token (
201- self , create_category , create_authenticated_headers
202- ):
203- headers = create_authenticated_headers ()
204- response = create_category ("DeleteExpired" , headers )
205- data = response .get_json ()
206- cat_id = data ["id" ]
207-
208- expired_headers = utils .get_expired_token_headers (
209- self .client .application .app_context ()
210- )
211- delete_resp = self .client .delete (f"/category/{ cat_id } " , headers = expired_headers )
212-
213- utils .verify_token_error_response (delete_resp , "token_expired" )
214- self ._verify_category_in_db ("DeleteExpired" )
215-
216- def test_delete_category_invalid_token (
217- self , create_category , create_authenticated_headers
218- ):
219- headers = create_authenticated_headers ()
220- response = create_category ("DeleteInvalid" , headers )
221- data = response .get_json ()
222- cat_id = data ["id" ]
223-
224- invalid_headers = utils .get_invalid_token_headers ()
225- delete_resp = self .client .delete (f"/category/{ cat_id } " , headers = invalid_headers )
226-
227- utils .verify_token_error_response (delete_resp , "invalid_token" )
228- self ._verify_category_in_db ("DeleteInvalid" )
229-
230- def test_delete_category_missing_token (
231- self , create_category , create_authenticated_headers
232- ):
152+ @pytest .mark .parametrize (
153+ "get_headers, expected_code" ,
154+ [
155+ (lambda self : utils .get_expired_token_headers (self .client .application .app_context ()), "token_expired" ),
156+ (lambda self : utils .get_invalid_token_headers (), "invalid_token" ),
157+ (lambda self : None , "authorization_required" )
158+ ]
159+ )
160+ def test_delete_category_token_error (self , get_headers , create_category , create_authenticated_headers , expected_code ):
233161 headers = create_authenticated_headers ()
234- response = create_category ("DeleteMissing " , headers )
162+ response = create_category ("DeleteTokenError " , headers )
235163 data = response .get_json ()
236164 cat_id = data ["id" ]
237165
238- delete_resp = self .client .delete (f"/category/{ cat_id } " )
166+ delete_headers = get_headers (self )
167+ delete_resp = self .client .delete (f"/category/{ cat_id } " , headers = delete_headers )
239168
240- utils .verify_token_error_response (delete_resp , "authorization_required" )
241- self ._verify_category_in_db ("DeleteMissing " )
169+ utils .verify_token_error_response (delete_resp , expected_code )
170+ self ._verify_category_in_db ("DeleteTokenError " )
0 commit comments