diff --git a/HISTORY.rst b/HISTORY.rst index 27862e8..2b2fd3d 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -6,9 +6,12 @@ History Unreleased ********** * fix backward compatibility by making PayuProvider's get_refund_description argument optional +* add `renewal_triggered_by` parameter to `payment.set_renew_token` * make PayuProvider.refund fail if get_refund_description is not provided * make PayuProvider.refund raise PayuApiError if an unexpected response is received * deprecate the default value of get_refund_description; set it to a callable instead +* deprecate `automatic_renewal` parameter of `payment.set_renew_token`; use `renewal_triggered_by` parameter instead +* deprecate `None` value of `renewal_triggered_by` parameter of `payment.set_renew_token`; set `"user"`/`"task"`/`"other"` instead 1.3.1 (2024-03-19) ****************** diff --git a/payments_payu/provider.py b/payments_payu/provider.py index ed7db84..d2a3f9b 100644 --- a/payments_payu/provider.py +++ b/payments_payu/provider.py @@ -441,7 +441,7 @@ def create_order(self, payment, payment_processor, auto_renew=False): card_masked_number=response_dict["payMethods"]["payMethod"]["card"][ "number" ], - automatic_renewal=self.recurring_payments, + renewal_triggered_by="task" if self.recurring_payments else "user", ) add_extra_data(payment, {"card_response": response_dict}) diff --git a/tests/test_payu.py b/tests/test_payu.py index 73d02f5..d291b6c 100644 --- a/tests/test_payu.py +++ b/tests/test_payu.py @@ -34,6 +34,8 @@ def __eq__(self, other): class Payment(Mock): + UNSET = object() + id = 1 description = "payment" currency = "USD" @@ -98,13 +100,15 @@ def set_renew_token( card_expire_year=None, card_expire_month=None, card_masked_number=None, - automatic_renewal=None, + automatic_renewal=UNSET, + renewal_triggered_by=UNSET, ): self.token = token self.card_expire_year = card_expire_year self.card_expire_month = card_expire_month self.card_masked_number = card_masked_number self.automatic_renewal = automatic_renewal + self.renewal_triggered_by = renewal_triggered_by class TestPayuProvider(TestCase): @@ -188,7 +192,8 @@ def test_redirect_payu_store_token(self): self.assertEqual(self.payment.card_expire_year, 2021) self.assertEqual(self.payment.card_expire_month, 1) self.assertEqual(self.payment.card_masked_number, "1234xxx") - self.assertEqual(self.payment.automatic_renewal, True) + self.assertEqual(self.payment.automatic_renewal, Payment.UNSET) + self.assertEqual(self.payment.renewal_triggered_by, "task") def test_redirect_payu_unknown_status(self): self.set_up_provider(