Skip to content

Commit 268b31f

Browse files
committed
testing
1 parent d9a8453 commit 268b31f

File tree

4 files changed

+182
-3
lines changed

4 files changed

+182
-3
lines changed

resources/item.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def get(self):
2020
items = ItemModel.query.all()
2121
return items
2222

23-
@jwt_required(fresh=True)
23+
@jwt_required()
2424
@blp.arguments(ItemSchema) # item_data is in ItemSchema, ItemSchema collects JSON
2525
@blp.response(201, ItemSchema)
2626
def post(self, item_data):
@@ -44,8 +44,8 @@ def get(self, item_id):
4444
@jwt_required()
4545
def delete(self, item_id):
4646
jwt = get_jwt()
47-
if not jwt.get("is_admin"):
48-
abort(401, message="Admin privilege required!")
47+
# if not jwt.get("is_admin"):
48+
# abort(401, message="Admin privilege required!")
4949
item = ItemModel.query.get_or_404(item_id)
5050
db.session.delete(item)
5151
db.session.commit()

tests/test_item.py

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
import pytest
2+
import json
3+
import blocklist
4+
from .client import client
5+
from flask_jwt_extended import get_jwt
6+
7+
8+
def test_create_item(client):
9+
response = client.post("/register", json={"username": "boris", "password": "123"})
10+
response_login = client.post(
11+
"/login", json={"username": "boris", "password": "123"}
12+
)
13+
14+
data_login = json.loads(response_login.data.decode())
15+
access_token = data_login["access_token"]
16+
response_store = client.post("/store", json={"name": "basic"})
17+
18+
response_create_item = client.post(
19+
"/item",
20+
json={
21+
"name": "item_1",
22+
"price": 21.99,
23+
"store_id": 1,
24+
},
25+
headers={"Authorization": f"Bearer {access_token}"},
26+
)
27+
28+
data_item = json.loads(response_create_item.data.decode())
29+
30+
assert response_create_item.status_code == 201
31+
assert data_item["name"] == "item_1"
32+
assert data_item["store"]["name"] == "basic"
33+
assert data_item["tags"] == {}
34+
35+
36+
def test_get_items(client):
37+
response_login = client.post(
38+
"/login", json={"username": "boris", "password": "123"}
39+
)
40+
41+
data_login = json.loads(response_login.data.decode())
42+
access_token = data_login["access_token"]
43+
44+
response_get_items = client.get(
45+
"/item", headers={"Authorization": f"Bearer {access_token}"}
46+
)
47+
data_items = json.loads(response_get_items.data.decode())
48+
assert response_get_items.status_code == 200
49+
assert data_items[0]["name"] == "item_1"
50+
51+
52+
def test_get_item_by_id(client):
53+
response_login = client.post(
54+
"/login", json={"username": "boris", "password": "123"}
55+
)
56+
57+
data_login = json.loads(response_login.data.decode())
58+
access_token = data_login["access_token"]
59+
60+
response_get_item = client.get(
61+
"/item/1", headers={"Authorization": f"Bearer {access_token}"}
62+
)
63+
data_items = json.loads(response_get_item.data.decode())
64+
assert response_get_item.status_code == 200
65+
assert data_items["name"] == "item_1"
66+
67+
68+
def test_get_item_not_found(client):
69+
response_login = client.post(
70+
"/login", json={"username": "boris", "password": "123"}
71+
)
72+
73+
data_login = json.loads(response_login.data.decode())
74+
access_token = data_login["access_token"]
75+
76+
response_get_item = client.get(
77+
"/item/2", headers={"Authorization": f"Bearer {access_token}"}
78+
)
79+
80+
assert response_get_item.status_code == 404
81+
82+
83+
def test_update_item(client):
84+
response_login = client.post(
85+
"/login", json={"username": "boris", "password": "123"}
86+
)
87+
88+
data_login = json.loads(response_login.data.decode())
89+
access_token = data_login["access_token"]
90+
91+
response_update = client.put(
92+
"/item/3",
93+
json={"name": "basicbasic", "price": 19.99, "store_id": 1},
94+
headers={"Authorization": f"Bearer {access_token}"},
95+
)
96+
response_update_1 = client.put(
97+
"/item/1",
98+
json={
99+
"name": "basicbasicb",
100+
"price": 19.99,
101+
},
102+
headers={"Authorization": f"Bearer {access_token}"},
103+
)
104+
105+
data_update = json.loads(response_update.data.decode())
106+
data_update_1 = json.loads(response_update_1.data.decode())
107+
assert data_update["name"] == "basicbasic"
108+
assert data_update["price"] == 19.99
109+
assert response_update.status_code == 200
110+
assert data_update_1["name"] == "basicbasicb"
111+
112+
113+
def test_delete_item(client):
114+
response_login = client.post(
115+
"/login", json={"username": "boris", "password": "123"}
116+
)
117+
118+
data_login = json.loads(response_login.data.decode())
119+
access_token = data_login["access_token"]
120+
response_delete = client.delete(
121+
"/item/1", headers={"Authorization": f"Bearer {access_token}"}
122+
)
123+
124+
data_delete = json.loads(response_delete.data.decode())
125+
126+
assert data_delete["message"] == "Item is deleted"

tests/test_item_tags.py

Whitespace-only changes.

tests/test_store.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,55 @@
1+
import pytest
12
import json
3+
import blocklist
24
from .client import client
5+
from flask_jwt_extended import get_jwt
6+
7+
8+
def test_create(client):
9+
response = client.post("/store", json={"name": "basic"})
10+
11+
data_store = json.loads(response.data.decode())
12+
13+
assert data_store["name"] == "basic"
14+
assert response.status_code == 201
15+
assert data_store["items"] == []
16+
assert data_store["tags"] == []
17+
18+
19+
def test_store_already_exists(client):
20+
response = client.post("/store", json={"name": "basic"})
21+
response_1 = client.post("/store", json={"name": "basic"})
22+
assert response_1.status_code == 400
23+
24+
25+
def test_get_stores(client):
26+
response_1 = client.post("/store", json={"name": "basic_1"})
27+
response = client.get("/store")
28+
29+
data_stores = json.loads(response.data.decode())
30+
31+
assert data_stores[0]["name"] == "basic"
32+
assert data_stores[1]["name"] == "basic_1"
33+
34+
35+
def test_get_store(client):
36+
response = client.get("/store/1")
37+
38+
data_store = json.loads(response.data.decode())
39+
40+
assert data_store["name"] == "basic"
41+
assert response.status_code == 200
42+
43+
44+
def test_store_not_found(client):
45+
response = client.get("/store/3")
46+
47+
assert response.status_code == 404
48+
49+
50+
def test_delete_store(client):
51+
response = client.delete("/store/1")
52+
53+
data_delete = json.loads(response.data.decode())
54+
55+
assert data_delete["message"] == "store is deleted"

0 commit comments

Comments
 (0)