Skip to content

Commit 36ae567

Browse files
Parameterize token tests for subcategories
1 parent 1995e98 commit 36ae567

File tree

1 file changed

+42
-87
lines changed

1 file changed

+42
-87
lines changed

tests/test_subcategory.py

Lines changed: 42 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -113,111 +113,66 @@ def test_delete_subcategory(self, create_authenticated_headers, create_subcatego
113113
assert get_resp.status_code == 404
114114
self._verify_subcategory_in_db("ToDelete", should_exist=False)
115115

116-
def test_create_subcategory_expired_token(self):
117-
headers = utils.get_expired_token_headers(self.client.application.app_context())
116+
@pytest.mark.parametrize(
117+
"get_headers, expected_code",
118+
[
119+
(lambda self: utils.get_expired_token_headers(self.client.application.app_context()), "token_expired"),
120+
(lambda self: utils.get_invalid_token_headers(), "invalid_token"),
121+
(lambda self: None, "authorization_required")
122+
]
123+
)
124+
def test_create_subcategory_token_error(self, get_headers, expected_code):
125+
headers = get_headers(self)
118126
response = self.client.post(
119-
"/subcategory/create", json={"name": "TestExpired"}, headers=headers
127+
"/subcategory/create", json={"name": "CreateTokenError"}, headers=headers
120128
)
121-
122-
utils.verify_token_error_response(response, "token_expired")
123-
self._verify_subcategory_in_db("TestExpired", should_exist=False)
124-
125-
def test_create_subcategory_invalid_token(self):
126-
headers = utils.get_invalid_token_headers()
127-
response = self.client.post(
128-
"/subcategory/create", json={"name": "TestInvalid"}, headers=headers
129-
)
130-
131-
utils.verify_token_error_response(response, "invalid_token")
132-
self._verify_subcategory_in_db("TestInvalid", should_exist=False)
133-
134-
def test_create_subcategory_missing_token(self):
135-
response = self.client.post("/subcategory/create", json={"name": "TestMissing"})
136-
utils.verify_token_error_response(response, "authorization_required")
137-
self._verify_subcategory_in_db("TestMissing", should_exist=False)
138-
139-
def test_update_subcategory_expired_token(self, create_subcategory, create_authenticated_headers):
140-
headers = create_authenticated_headers()
141-
response = create_subcategory("UpdateExpired", headers=headers)
142-
data = response.get_json()
143-
sc_id = data["id"]
144-
145-
expired_headers = utils.get_expired_token_headers(self.client.application.app_context())
146-
update_resp = self.client.put(
147-
f"/subcategory/{sc_id}/update",
148-
json={"name": "UpdatedName"},
149-
headers=expired_headers,
150-
)
151-
152-
utils.verify_token_error_response(update_resp, "token_expired")
153-
self._verify_subcategory_in_db("UpdateExpired")
154-
self._verify_subcategory_in_db("UpdatedName", should_exist=False)
155-
156-
def test_update_subcategory_invalid_token(self, create_subcategory, create_authenticated_headers):
129+
utils.verify_token_error_response(response, expected_code)
130+
self._verify_subcategory_in_db("CreateTokenError", should_exist=False)
131+
132+
@pytest.mark.parametrize(
133+
"get_headers, expected_code",
134+
[
135+
(lambda self: utils.get_expired_token_headers(self.client.application.app_context()), "token_expired"),
136+
(lambda self: utils.get_invalid_token_headers(), "invalid_token"),
137+
(lambda self: None, "authorization_required")
138+
]
139+
)
140+
def test_update_subcategory_token_error(self, get_headers, create_subcategory, create_authenticated_headers, expected_code):
157141
headers = create_authenticated_headers()
158-
response = create_subcategory("UpdateInvalid", headers=headers)
142+
response = create_subcategory("UpdateTokenError", headers=headers)
159143
data = response.get_json()
160144
sc_id = data["id"]
161145

162-
invalid_headers = utils.get_invalid_token_headers()
146+
update_headers = get_headers(self)
163147
update_resp = self.client.put(
164148
f"/subcategory/{sc_id}/update",
165149
json={"name": "UpdatedName"},
166-
headers=invalid_headers,
150+
headers=update_headers,
167151
)
168152

169-
utils.verify_token_error_response(update_resp, "invalid_token")
170-
self._verify_subcategory_in_db("UpdateInvalid")
153+
utils.verify_token_error_response(update_resp, expected_code)
154+
self._verify_subcategory_in_db("UpdateTokenError")
171155
self._verify_subcategory_in_db("UpdatedName", should_exist=False)
172156

173-
def test_update_subcategory_missing_token(self, create_subcategory, create_authenticated_headers):
174-
headers = create_authenticated_headers()
175-
response = create_subcategory("UpdateMissing", headers=headers)
176-
data = response.get_json()
177-
sc_id = data["id"]
178-
179-
update_resp = self.client.put(
180-
f"/subcategory/{sc_id}/update", json={"name": "UpdatedName"}
181-
)
182-
183-
utils.verify_token_error_response(update_resp, "authorization_required")
184-
self._verify_subcategory_in_db("UpdateMissing")
185-
self._verify_subcategory_in_db("UpdatedName", should_exist=False)
186-
187-
def test_delete_subcategory_expired_token(self, create_subcategory, create_authenticated_headers):
188-
headers = create_authenticated_headers()
189-
response = create_subcategory("DeleteExpired", headers=headers)
190-
data = response.get_json()
191-
sc_id = data["id"]
192-
193-
expired_headers = utils.get_expired_token_headers(self.client.application.app_context())
194-
delete_resp = self.client.delete(f"/subcategory/{sc_id}", headers=expired_headers)
195-
196-
utils.verify_token_error_response(delete_resp, "token_expired")
197-
self._verify_subcategory_in_db("DeleteExpired")
198-
199-
def test_delete_subcategory_invalid_token(self, create_subcategory, create_authenticated_headers):
200-
headers = create_authenticated_headers()
201-
response = create_subcategory("DeleteInvalid", headers=headers)
202-
data = response.get_json()
203-
sc_id = data["id"]
204-
205-
invalid_headers = utils.get_invalid_token_headers()
206-
delete_resp = self.client.delete(f"/subcategory/{sc_id}", headers=invalid_headers)
207-
208-
utils.verify_token_error_response(delete_resp, "invalid_token")
209-
self._verify_subcategory_in_db("DeleteInvalid")
210-
211-
def test_delete_subcategory_missing_token(self, create_subcategory, create_authenticated_headers):
157+
@pytest.mark.parametrize(
158+
"get_headers, expected_code",
159+
[
160+
(lambda self: utils.get_expired_token_headers(self.client.application.app_context()), "token_expired"),
161+
(lambda self: utils.get_invalid_token_headers(), "invalid_token"),
162+
(lambda self: None, "authorization_required")
163+
]
164+
)
165+
def test_delete_subcategory_token_error(self, get_headers, create_subcategory, create_authenticated_headers, expected_code):
212166
headers = create_authenticated_headers()
213-
response = create_subcategory("DeleteMissing", headers=headers)
167+
response = create_subcategory("DeleteTokenError", headers=headers)
214168
data = response.get_json()
215169
sc_id = data["id"]
216170

217-
delete_resp = self.client.delete(f"/subcategory/{sc_id}")
171+
delete_headers = get_headers(self)
172+
delete_resp = self.client.delete(f"/subcategory/{sc_id}", headers=delete_headers)
218173

219-
utils.verify_token_error_response(delete_resp, "authorization_required")
220-
self._verify_subcategory_in_db("DeleteMissing")
174+
utils.verify_token_error_response(delete_resp, expected_code)
175+
self._verify_subcategory_in_db("DeleteTokenError")
221176

222177
def test_get_subcategory_categories_empty(self, create_subcategory):
223178
response = create_subcategory("NoCatRel")

0 commit comments

Comments
 (0)