diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ad0dc6..a81877d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,7 +54,6 @@ All notable changes to this project will be documented in this file. - BA-1003 Add payment method: Creditcards - BA-1004 Add payment method: EPS - BA-1005 Add payment method: Giftcards -- BA-1006 Add payment method: goSettle - BA-1007 Add payment method: Google Pay - BA-1008 Add payment method: External Payment - BA-1009 Add payment method: iDEAL | Wero diff --git a/buckaroo/builders/payments/knaken_builder.py b/buckaroo/builders/payments/knaken_builder.py deleted file mode 100644 index 7a4ce97..0000000 --- a/buckaroo/builders/payments/knaken_builder.py +++ /dev/null @@ -1,15 +0,0 @@ -from typing import Dict, Any -from .payment_builder import PaymentBuilder - - -class KnakenBuilder(PaymentBuilder): - """Builder for Knaken payments.""" - - def get_service_name(self) -> str: - """Get the service name for Knaken payments.""" - return "Knaken" - - def get_allowed_service_parameters(self, action: str = "Pay") -> Dict[str, Any]: - """Get the allowed service parameters for Knaken payments based on action.""" - - return {} diff --git a/buckaroo/factories/payment_method_factory.py b/buckaroo/factories/payment_method_factory.py index 23285a9..c25bbbd 100644 --- a/buckaroo/factories/payment_method_factory.py +++ b/buckaroo/factories/payment_method_factory.py @@ -24,7 +24,6 @@ from buckaroo.builders.payments.billink_builder import BillinkBuilder from buckaroo.builders.payments.klarna_builder import KlarnaBuilder from buckaroo.builders.payments.klarnakp_builder import KlarnaKPBuilder -from buckaroo.builders.payments.knaken_builder import KnakenBuilder from buckaroo.builders.payments.przelewy24_builder import Przelewy24Builder from buckaroo.builders.payments.riverty_builder import RivertyBuilder from buckaroo.builders.payments.sepadirectdebit_builder import SepaDirectDebitBuilder @@ -73,7 +72,6 @@ class PaymentMethodFactory(BuilderFactory): "idin": IdinBuilder, "in3": In3Builder, "kbc": KBCBuilder, - "knaken": KnakenBuilder, "klarna": KlarnaBuilder, "klarnakp": KlarnaKPBuilder, "multibanco": MultibancoBuilder, diff --git a/tests/feature/payments/test_knaken.py b/tests/feature/payments/test_knaken.py deleted file mode 100644 index 3d38dd8..0000000 --- a/tests/feature/payments/test_knaken.py +++ /dev/null @@ -1,14 +0,0 @@ -"""Feature test: knaken pay() round-trip through full stack with MockBuckaroo.""" - -from tests.support.helpers import Helpers - - -class TestKnakenFeature: - def test_knaken_pay_returns_pending_with_redirect(self, buckaroo, mock_strategy): - Helpers.assert_pay_returns_pending_with_redirect( - buckaroo, - mock_strategy, - method="knaken", - invoice="INV-KNK-001", - payload_overrides={"description": "Test knaken"}, - ) diff --git a/tests/unit/builders/payments/test_knaken_builder.py b/tests/unit/builders/payments/test_knaken_builder.py deleted file mode 100644 index c2076a2..0000000 --- a/tests/unit/builders/payments/test_knaken_builder.py +++ /dev/null @@ -1,86 +0,0 @@ -"""Unit coverage for :class:`KnakenBuilder`. - -Phase 7.22 — per-builder coverage. KnakenBuilder is a minimal subclass of -:class:`PaymentBuilder` that only overrides :meth:`get_service_name` and -:meth:`get_allowed_service_parameters`; it mixes in no capability classes. -Tests exercise every public surface and pin the allowed-parameter shape for -every action we care about. -""" - -from __future__ import annotations - -import pytest - -from buckaroo.builders.payments.knaken_builder import KnakenBuilder -from buckaroo.builders.payments.payment_builder import PaymentBuilder -from tests.support.builders import populate_required_fields -from tests.support.mock_request import BuckarooMockRequest -from tests.support.recording_mock import recorded_request, wire_recording_http - - -# --------------------------------------------------------------------------- -# Construction - - -def test_construction_wired_to_mock_buckaroo_succeeds(client): - builder = KnakenBuilder(client) - - assert isinstance(builder, KnakenBuilder) - assert isinstance(builder, PaymentBuilder) - - -# --------------------------------------------------------------------------- -# get_service_name - - -def test_get_service_name_returns_knaken(client): - builder = KnakenBuilder(client) - - assert builder.get_service_name() == "Knaken" - - -# --------------------------------------------------------------------------- -# get_allowed_service_parameters — snapshot every supported action - - -@pytest.mark.parametrize( - "action", - ["Pay", "Refund", "PayRemainder", "ExtraInfo", "UnknownAction"], -) -def test_get_allowed_service_parameters_returns_empty_dict_for_every_action(client, action): - builder = KnakenBuilder(client) - - assert builder.get_allowed_service_parameters(action) == {} - - -def test_get_allowed_service_parameters_defaults_to_pay_and_returns_empty(client): - """Covers the ``action: str = "Pay"`` default-argument branch.""" - builder = KnakenBuilder(client) - - assert builder.get_allowed_service_parameters() == {} - - -# --------------------------------------------------------------------------- -# End-to-end pay via MockBuckaroo - - -def test_pay_posts_knaken_service_to_transaction_endpoint_and_parses_response(): - mock, client = wire_recording_http() - mock.queue( - BuckarooMockRequest.json( - "POST", - "*/json/transaction*", - {"Key": "KNK-1", "Status": {"Code": {"Code": 190}}}, - ) - ) - builder = populate_required_fields(KnakenBuilder(client), amount=42.50) - - response = builder.pay(validate=False) - - assert "/json/transaction" in mock.calls[0]["url"].lower() - sent = recorded_request(mock) - service = sent["Services"]["ServiceList"][0] - assert service["Name"] == "Knaken" - assert service["Action"] == "Pay" - assert response.key == "KNK-1" - mock.assert_all_consumed()