Добавлен CI, добавлена отправка письма о получении оплаты, добавлен order_id в success_url
Deploy / deploy (push) Successful in 58s

This commit is contained in:
Раис Юсупалиев
2026-05-27 23:29:51 +03:00
parent 50124fb2c9
commit f1b91d09d8
25 changed files with 584 additions and 158 deletions
@@ -85,7 +85,7 @@ def test_provider_register_order_posts_payload_and_maps_response() -> None:
http_client = SequenceHTTPClient([response])
provider = _make_provider(http_client)
result = asyncio.run(provider.register_order(make_init_payment_request()))
result = asyncio.run(provider.register_order(make_init_payment_request(), "order-uuid-1"))
assert result == CDEKOrderRegistrationResult(
order_uuid="cdek-order-uuid",
@@ -118,7 +118,7 @@ def test_cdek_client_register_order_maps_4xx_to_request_error() -> None:
)
with pytest.raises(CDEKRequestError, match="status 422"):
asyncio.run(client.register_order(make_init_payment_request()))
asyncio.run(client.register_order(make_init_payment_request(), "order-uuid-1"))
assert len(http_client.calls) == 1
@@ -149,7 +149,7 @@ def test_cdek_client_register_order_maps_duplicate_external_id_to_success() -> N
retry_attempts=2,
)
result = asyncio.run(client.register_order(make_init_payment_request()))
result = asyncio.run(client.register_order(make_init_payment_request(), "order-uuid-1"))
assert result == CDEKOrderRegistrationResult(
order_uuid="existing-cdek-order-uuid",
@@ -186,7 +186,7 @@ def test_cdek_client_register_order_retries_5xx_and_raises_client_error() -> Non
)
with pytest.raises(CDEKClientError, match="retriable status 503"):
asyncio.run(client.register_order(make_init_payment_request()))
asyncio.run(client.register_order(make_init_payment_request(), "order-uuid-1"))
assert len(http_client.calls) == 2
assert sleep_calls == [0.25]
@@ -207,4 +207,4 @@ def test_cdek_client_register_order_raises_client_error_for_invalid_success_payl
)
with pytest.raises(CDEKClientError, match="response payload is invalid"):
asyncio.run(client.register_order(make_init_payment_request()))
asyncio.run(client.register_order(make_init_payment_request(), "order-uuid-1"))
@@ -16,7 +16,7 @@ from tests.payment_fixtures import make_init_payment_request
def test_order_payload_uses_order_uuid_and_tariff_code_from_system_data() -> None:
payload = map_cdek_order_request(make_init_payment_request())
payload = map_cdek_order_request(make_init_payment_request(), "order-uuid-1")
assert payload["number"] == "order-uuid-1"
assert payload["type"] == 2
@@ -24,7 +24,7 @@ def test_order_payload_uses_order_uuid_and_tariff_code_from_system_data() -> Non
def test_order_payload_requests_waybill_print() -> None:
payload = map_cdek_order_request(make_init_payment_request())
payload = map_cdek_order_request(make_init_payment_request(), "order-uuid-1")
assert payload["print"] == "WAYBILL"
@@ -86,7 +86,7 @@ def test_map_cdek_existing_order_response_returns_waybill_for_duplicate() -> Non
def test_order_payload_maps_phones_and_phone_ext_to_additional() -> None:
payload = map_cdek_order_request(make_init_payment_request())
payload = map_cdek_order_request(make_init_payment_request(), "order-uuid-1")
assert payload["sender"]["phones"] == [{"number": "+79009876543"}]
assert payload["recipient"]["phones"] == [
@@ -95,7 +95,7 @@ def test_order_payload_maps_phones_and_phone_ext_to_additional() -> None:
def test_order_payload_maps_locations_with_address_and_postal_code() -> None:
payload = map_cdek_order_request(make_init_payment_request())
payload = map_cdek_order_request(make_init_payment_request(), "order-uuid-1")
assert payload["from_location"] == {
"code": 7017,
@@ -110,7 +110,7 @@ def test_order_payload_maps_locations_with_address_and_postal_code() -> None:
def test_order_payload_for_parcel_includes_dimensions() -> None:
payload = map_cdek_order_request(make_init_payment_request())
payload = map_cdek_order_request(make_init_payment_request(), "order-uuid-1")
package = payload["packages"][0]
assert package["weight"] == 1000
@@ -138,7 +138,7 @@ def test_order_payload_for_doc_omits_dimensions() -> None:
},
)
payload = map_cdek_order_request(request)
payload = map_cdek_order_request(request, "order-uuid-1")
package = payload["packages"][0]
assert package["weight"] == 500
@@ -148,7 +148,7 @@ def test_order_payload_for_doc_omits_dimensions() -> None:
def test_order_payload_omits_shipment_and_delivery_point() -> None:
payload = map_cdek_order_request(make_init_payment_request())
payload = map_cdek_order_request(make_init_payment_request(), "order-uuid-1")
assert "shipment_point" not in payload
assert "delivery_point" not in payload
@@ -168,7 +168,7 @@ def test_order_payload_includes_company_requisites_for_legal_entity() -> None:
}
)
sender = map_cdek_order_request(request)["sender"]
sender = map_cdek_order_request(request, "order-uuid-1")["sender"]
assert sender["contragent_type"] == "LEGAL_ENTITY"
assert sender["company"] == "Romashka LLC"
@@ -177,7 +177,7 @@ def test_order_payload_includes_company_requisites_for_legal_entity() -> None:
def test_order_payload_propagates_description_to_comments_without_items() -> None:
payload = map_cdek_order_request(make_init_payment_request())
payload = map_cdek_order_request(make_init_payment_request(), "order-uuid-1")
assert payload["comment"] == "Headphones"
assert payload["packages"][0]["comment"] == "Headphones"
@@ -186,14 +186,14 @@ def test_order_payload_propagates_description_to_comments_without_items() -> Non
def test_order_payload_falls_back_package_comment_to_order_uuid() -> None:
payload = map_cdek_order_request(
make_init_payment_request(content={"description": None})
make_init_payment_request(content={"description": None}), "order-uuid-1"
)
assert payload["packages"][0]["comment"] == "order-uuid-1"
def test_order_payload_includes_company_for_individual_sender_as_full_name() -> None:
payload = map_cdek_order_request(make_init_payment_request())
payload = map_cdek_order_request(make_init_payment_request(), "order-uuid-1")
assert payload["sender"]["company"] == "Petr Petrov"
assert payload["recipient"]["company"] == "Ivan Ivanov"