From 34a7bc15395b18e528e1bec203cd0e973b4ba606 Mon Sep 17 00:00:00 2001 From: som-m Date: Sun, 31 Jan 2021 15:19:09 +0700 Subject: [PATCH] Add expire method for Charge --- omise/__init__.py | 9 +++++++++ omise/test/test_charge.py | 24 +++++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/omise/__init__.py b/omise/__init__.py index c318116..5662e39 100644 --- a/omise/__init__.py +++ b/omise/__init__.py @@ -667,6 +667,15 @@ def reverse(self): path = self._instance_path(self._attributes['id']) + ('reverse',) return self._reload_data(self._request('post', path)) + def expire(self): + """Set a charge that has not yet been authorized to expire. Supported + payment method: Alipay (Barcode) + + :rtype: Charge + """ + path = self._instance_path(self._attributes['id']) + ('expire',) + return self._reload_data(self._request('post', path)) + def refund(self, **kwargs): """Refund a refundable charge. diff --git a/omise/test/test_charge.py b/omise/test/test_charge.py index df986c7..31f3758 100644 --- a/omise/test/test_charge.py +++ b/omise/test/test_charge.py @@ -67,7 +67,8 @@ def _makeOne(self): 'id': 'chrg_test', 'captured': False, 'authorized': True, - 'reversed': False + 'reversed': False, + 'expired': False }) @mock.patch('requests.post') @@ -669,6 +670,27 @@ def test_reverse(self, api_call): 'https://api.omise.co/charges/chrg_test/reverse', ) + @mock.patch('requests.post') + def test_expire(self, api_call): + charge = self._makeOne() + class_ = self._getTargetClass() + self.mockResponse(api_call, """{ + "object": "charge", + "id": "chrg_test", + "livemode": false, + "expired": true + }""") + + self.assertTrue(isinstance(charge, class_)) + self.assertFalse(charge.expired) + charge.expire() + + self.assertTrue(charge.expired) + self.assertRequest( + api_call, + 'https://api.omise.co/charges/chrg_test/expire', + ) + @mock.patch('requests.get') @mock.patch('requests.post') def test_refund(self, api_call, reload_call):