Skip to content

Commit 12cc98e

Browse files
Parameterize token tests for categories
1 parent 36ae567 commit 12cc98e

File tree

1 file changed

+42
-103
lines changed

1 file changed

+42
-103
lines changed

tests/test_category.py

Lines changed: 42 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -108,124 +108,63 @@ def test_delete_category(self, create_authenticated_headers, create_category):
108108
assert get_resp.status_code == 404
109109
self._verify_category_in_db("ToDelete", should_exist=False)
110110

111-
def test_create_category_expired_token(self):
112-
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)
113121
response = self.client.post(
114-
"/category/create", json={"name": "TestExpired"}, headers=headers
122+
"/category/create", json={"name": "CreateTokenError"}, headers=headers
115123
)
116-
117-
utils.verify_token_error_response(response, "token_expired")
118-
self._verify_category_in_db("TestExpired", should_exist=False)
119-
120-
def test_create_category_invalid_token(self):
121-
headers = utils.get_invalid_token_headers()
122-
response = self.client.post(
123-
"/category/create", json={"name": "TestInvalid"}, headers=headers
124-
)
125-
126-
utils.verify_token_error_response(response, "invalid_token")
127-
self._verify_category_in_db("TestInvalid", should_exist=False)
128-
129-
def test_create_category_missing_token(self):
130-
response = self.client.post("/category/create", json={"name": "TestMissing"})
131-
utils.verify_token_error_response(response, "authorization_required")
132-
self._verify_category_in_db("TestMissing", should_exist=False)
133-
134-
def test_update_category_expired_token(
135-
self, create_category, create_authenticated_headers
136-
):
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):
137136
headers = create_authenticated_headers()
138-
response = create_category("UpdateExpired", headers)
137+
response = create_category("UpdateTokenError", headers)
139138
data = response.get_json()
140139
cat_id = data["id"]
141140

142-
expired_headers = utils.get_expired_token_headers(
143-
self.client.application.app_context()
144-
)
141+
update_headers = get_headers(self)
145142
update_resp = self.client.put(
146143
f"/category/{cat_id}/update",
147144
json={"name": "UpdatedName"},
148-
headers=expired_headers,
145+
headers=update_headers,
149146
)
150147

151-
utils.verify_token_error_response(update_resp, "token_expired")
152-
self._verify_category_in_db("UpdateExpired")
148+
utils.verify_token_error_response(update_resp, expected_code)
149+
self._verify_category_in_db("UpdateTokenError")
153150
self._verify_category_in_db("UpdatedName", should_exist=False)
154151

155-
def test_update_category_invalid_token(
156-
self, create_category, create_authenticated_headers
157-
):
158-
headers = create_authenticated_headers()
159-
response = create_category("UpdateInvalid", headers)
160-
data = response.get_json()
161-
cat_id = data["id"]
162-
163-
invalid_headers = utils.get_invalid_token_headers()
164-
update_resp = self.client.put(
165-
f"/category/{cat_id}/update",
166-
json={"name": "UpdatedName"},
167-
headers=invalid_headers,
168-
)
169-
170-
utils.verify_token_error_response(update_resp, "invalid_token")
171-
self._verify_category_in_db("UpdateInvalid")
172-
self._verify_category_in_db("UpdatedName", should_exist=False)
173-
174-
def test_update_category_missing_token(
175-
self, create_category, create_authenticated_headers
176-
):
177-
headers = create_authenticated_headers()
178-
response = create_category("UpdateMissing", headers)
179-
data = response.get_json()
180-
cat_id = data["id"]
181-
182-
update_resp = self.client.put(
183-
f"/category/{cat_id}/update", json={"name": "UpdatedName"}
184-
)
185-
186-
utils.verify_token_error_response(update_resp, "authorization_required")
187-
self._verify_category_in_db("UpdateMissing")
188-
self._verify_category_in_db("UpdatedName", should_exist=False)
189-
190-
def test_delete_category_expired_token(
191-
self, create_category, create_authenticated_headers
192-
):
193-
headers = create_authenticated_headers()
194-
response = create_category("DeleteExpired", headers)
195-
data = response.get_json()
196-
cat_id = data["id"]
197-
198-
expired_headers = utils.get_expired_token_headers(
199-
self.client.application.app_context()
200-
)
201-
delete_resp = self.client.delete(f"/category/{cat_id}", headers=expired_headers)
202-
203-
utils.verify_token_error_response(delete_resp, "token_expired")
204-
self._verify_category_in_db("DeleteExpired")
205-
206-
def test_delete_category_invalid_token(
207-
self, create_category, create_authenticated_headers
208-
):
209-
headers = create_authenticated_headers()
210-
response = create_category("DeleteInvalid", headers)
211-
data = response.get_json()
212-
cat_id = data["id"]
213-
214-
invalid_headers = utils.get_invalid_token_headers()
215-
delete_resp = self.client.delete(f"/category/{cat_id}", headers=invalid_headers)
216-
217-
utils.verify_token_error_response(delete_resp, "invalid_token")
218-
self._verify_category_in_db("DeleteInvalid")
219-
220-
def test_delete_category_missing_token(
221-
self, create_category, create_authenticated_headers
222-
):
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):
223161
headers = create_authenticated_headers()
224-
response = create_category("DeleteMissing", headers)
162+
response = create_category("DeleteTokenError", headers)
225163
data = response.get_json()
226164
cat_id = data["id"]
227165

228-
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)
229168

230-
utils.verify_token_error_response(delete_resp, "authorization_required")
231-
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

Comments
 (0)