Coverage for tests/tests_api/orders/buffer.py: 41%
39 statements
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
« prev ^ index » next coverage.py v7.6.2, created at 2024-10-10 03:02 +0300
1import pytest
2from sotrans_models.models.orders.order import (
3 OrderCreateModel,
4 OrderDBModel,
5 OrderStatus,
6)
7from sotrans_models.models.responses import MultiselectError
9from ...conftest import tmp_subsidiary, tmp_user
10from ...random_model import generate_models_json
11from ..auth import test_client, token
12from ..fixtures import (
13 tmp_buffer_order,
14 tmp_client,
15 update_org_with_employee,
16 update_subsidiary_with_employee,
17)
20def test_create_order(test_client, tmp_client):
21 model_dump = generate_models_json(
22 OrderCreateModel,
23 {
24 "client": {"id": tmp_client.id},
25 "status": "buffer",
26 "start_price": None,
27 "carrier": None,
28 },
29 )
30 resp = test_client.post("/buffer-orders", json=model_dump)
31 assert resp.status_code == 201
32 o = OrderDBModel(**resp.json())
33 assert o.status == OrderStatus.buffer
34 assert o.client.inn == tmp_client.inn
37@pytest.mark.xfail
38def test_order_assignment(
39 test_client, tmp_buffer_order, update_subsidiary_with_employee
40):
41 resp = test_client.put(
42 f"/buffer-orders/{tmp_buffer_order.id}/to-appointment",
43 json={
44 "assigned": {
45 "company": {
46 "subsidiary": {
47 "id": str(update_subsidiary_with_employee.id)
48 }
49 }
50 },
51 },
52 )
53 assert resp.status_code == 200
54 assert not MultiselectError(**resp.json()).raised_ids
57def test_buffer_to_trash(test_client, tmp_buffer_order):
58 resp = test_client.put(f"/buffer-orders/{tmp_buffer_order.id}/to-trash")
59 assert resp.status_code == 200
60 assert not MultiselectError(**resp.json()).raised_ids
63def test_buf_by_id(test_client, tmp_buffer_order):
64 resp = test_client.get(f"/buffer-orders/{tmp_buffer_order.id}")
65 assert resp.status_code == 200
66 assert OrderDBModel(**resp.json()).status == OrderStatus.buffer
69def test_update(test_client, tmp_buffer_order):
70 test_str = "updated!"
71 resp = test_client.patch(
72 f"/buffer-orders/{tmp_buffer_order.id}",
73 json={OrderDBModel.note: test_str, OrderDBModel.etag: None},
74 )
75 assert resp.status_code == 200
76 assert OrderDBModel(**resp.json()).note == test_str
79def test_to_exchange(
80 test_client, tmp_buffer_order, update_org_with_employee, tmp_subsidiary
81):
82 resp = test_client.put(
83 f"/buffer-orders/{tmp_buffer_order.id}/to-exchange",
84 json={
85 "start_price": 80_000,
86 },
87 )
88 assert resp.status_code == 200
91@pytest.mark.xfail # failing on testing stage
92def test_buf_xlsx(test_client):
93 resp = test_client.get("/buffer-orders/xlsx")
94 assert resp.status_code == 200