init
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_delivered_sales_order_cannot_be_updated_or_deleted(client):
|
||||
payload = {
|
||||
"customer_id": 1,
|
||||
"delivery_date": None,
|
||||
"remark": "test",
|
||||
"items": [
|
||||
{
|
||||
"product_id": None,
|
||||
"product_sku": "MOLD-001",
|
||||
"product_name": "模具001",
|
||||
"product_category": "模具",
|
||||
"product_unit": "套",
|
||||
"quantity": 1,
|
||||
"unit_price": 1000.0,
|
||||
"remark": None,
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
create_resp = await client.post("/api/sales-orders", json=payload)
|
||||
assert create_resp.status_code == 201
|
||||
order = create_resp.json()
|
||||
order_id = order["id"]
|
||||
|
||||
status_resp = await client.patch(f"/api/sales-orders/{order_id}/status", json={"status": "delivered"})
|
||||
assert status_resp.status_code == 200
|
||||
|
||||
update_resp = await client.put(f"/api/sales-orders/{order_id}", json=payload)
|
||||
assert update_resp.status_code == 400
|
||||
|
||||
delete_resp = await client.delete(f"/api/sales-orders/{order_id}")
|
||||
assert delete_resp.status_code == 400
|
||||
|
||||
patch_resp = await client.patch(f"/api/sales-orders/{order_id}/status", json={"status": "paid"})
|
||||
assert patch_resp.status_code == 400
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_non_delivered_sales_order_can_be_updated(client):
|
||||
payload = {
|
||||
"customer_id": 1,
|
||||
"delivery_date": None,
|
||||
"remark": "test",
|
||||
"items": [
|
||||
{
|
||||
"product_id": None,
|
||||
"product_sku": "MOLD-002",
|
||||
"product_name": "模具002",
|
||||
"product_category": "模具",
|
||||
"product_unit": "套",
|
||||
"quantity": 1,
|
||||
"unit_price": 2000.0,
|
||||
"remark": None,
|
||||
}
|
||||
],
|
||||
}
|
||||
|
||||
create_resp = await client.post("/api/sales-orders", json=payload)
|
||||
assert create_resp.status_code == 201
|
||||
order_id = create_resp.json()["id"]
|
||||
|
||||
payload2 = {
|
||||
**payload,
|
||||
"remark": "changed",
|
||||
"items": [
|
||||
{
|
||||
**payload["items"][0],
|
||||
"quantity": 2,
|
||||
}
|
||||
],
|
||||
}
|
||||
update_resp = await client.put(f"/api/sales-orders/{order_id}", json=payload2)
|
||||
assert update_resp.status_code == 200
|
||||
assert update_resp.json()["total_amount"] == 4000.0
|
||||
Reference in New Issue
Block a user