@@ -143,7 +143,7 @@ def test_order_payload_for_parcel_includes_dimensions() -> None:
|
||||
|
||||
def test_order_payload_for_doc_omits_dimensions() -> None:
|
||||
request = make_init_payment_request(
|
||||
content={"description": "Docs"},
|
||||
content={"description": "Docs", "declaredValue": 25000},
|
||||
systemData={
|
||||
"tariff": {
|
||||
"provider": "СДЭК",
|
||||
@@ -198,20 +198,33 @@ def test_order_payload_includes_company_requisites_for_legal_entity() -> None:
|
||||
assert sender["kpp"] == "770701001"
|
||||
|
||||
|
||||
def test_order_payload_propagates_description_to_comments_without_items() -> None:
|
||||
def test_order_payload_maps_content_to_comments_and_declared_value_item() -> None:
|
||||
payload = map_cdek_order_request(make_init_payment_request(), "order-uuid-1")
|
||||
|
||||
assert payload["comment"] == "Headphones"
|
||||
assert payload["packages"][0]["comment"] == "Headphones"
|
||||
assert "items" not in payload["packages"][0]
|
||||
assert payload["packages"][0]["items"] == [
|
||||
{
|
||||
"name": "Headphones",
|
||||
"ware_key": "order-uuid-1",
|
||||
"payment": {"value": 0},
|
||||
"cost": 50000,
|
||||
"amount": 1,
|
||||
"weight": 1000,
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
def test_order_payload_falls_back_package_comment_to_order_uuid() -> None:
|
||||
payload = map_cdek_order_request(
|
||||
make_init_payment_request(content={"description": None}), "order-uuid-1"
|
||||
make_init_payment_request(
|
||||
content={"description": None, "declaredValue": 50000}
|
||||
),
|
||||
"order-uuid-1",
|
||||
)
|
||||
|
||||
assert payload["packages"][0]["comment"] == "order-uuid-1"
|
||||
assert payload["packages"][0]["items"][0]["name"] == "order-uuid-1"
|
||||
|
||||
|
||||
def test_order_payload_includes_company_for_individual_sender_as_full_name() -> None:
|
||||
|
||||
@@ -124,7 +124,7 @@ def test_provider_get_payment_price_omits_dimensions_for_doc() -> None:
|
||||
)
|
||||
)
|
||||
request = make_init_payment_request(
|
||||
content={"description": "Docs"},
|
||||
content={"description": "Docs", "declaredValue": 25000},
|
||||
systemData={
|
||||
"tariff": {
|
||||
"provider": "СДЭК",
|
||||
|
||||
@@ -276,6 +276,7 @@ def test_save_order_request_uses_selected_tariff_urgency() -> None:
|
||||
assert order.field_value("DeliveryOfCargo") == "ДоставкаДоДверей"
|
||||
assert order.field_value("Payer") == "payer-1"
|
||||
assert order.field_value("ShippingMethod") == "sm-1"
|
||||
assert order.field_value("CargoCost") == "50000"
|
||||
|
||||
|
||||
def test_application_error_in_response_raises_request_error() -> None:
|
||||
|
||||
@@ -164,6 +164,32 @@ def test_post_init_payment_rejects_non_integer_price() -> None:
|
||||
assert service.calls == []
|
||||
|
||||
|
||||
def test_post_init_payment_rejects_missing_declared_value() -> None:
|
||||
service = StubAggregatorService(response=None)
|
||||
app = create_app()
|
||||
_install_service_override(app, service)
|
||||
invalid_payload = make_init_payment_payload()
|
||||
del invalid_payload["content"]["declaredValue"]
|
||||
|
||||
response = _post(app, invalid_payload)
|
||||
|
||||
assert response.status_code == 422
|
||||
assert service.calls == []
|
||||
|
||||
|
||||
def test_post_init_payment_rejects_non_integer_declared_value() -> None:
|
||||
service = StubAggregatorService(response=None)
|
||||
app = create_app()
|
||||
_install_service_override(app, service)
|
||||
invalid_payload = make_init_payment_payload()
|
||||
invalid_payload["content"]["declaredValue"] = "50000"
|
||||
|
||||
response = _post(app, invalid_payload)
|
||||
|
||||
assert response.status_code == 422
|
||||
assert service.calls == []
|
||||
|
||||
|
||||
def test_post_init_payment_requires_company_fields_when_is_company_true() -> None:
|
||||
service = StubAggregatorService(response=None)
|
||||
app = create_app()
|
||||
|
||||
@@ -49,6 +49,7 @@ def make_init_payment_payload(**overrides: Any) -> dict[str, Any]:
|
||||
},
|
||||
"content": {
|
||||
"description": "Headphones",
|
||||
"declaredValue": 50000,
|
||||
},
|
||||
"pickupDate": "2026-05-15T10:00:00.000Z",
|
||||
"deliveryDate": "2026-05-18T18:00:00.000Z",
|
||||
|
||||
Reference in New Issue
Block a user