From 6fd2d23a5a0a2d9dc69600630c421d421e63bbe9 Mon Sep 17 00:00:00 2001 From: Yura Savin Date: Fri, 15 Sep 2023 15:40:42 +0400 Subject: [PATCH 1/4] Added kwargs to capture method --- omise/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/omise/__init__.py b/omise/__init__.py index 1a30564..fddb70b 100644 --- a/omise/__init__.py +++ b/omise/__init__.py @@ -779,13 +779,14 @@ def update(self, **kwargs): self._instance_path(self._attributes['id']), changed)) - def capture(self): + def capture(self, **kwargs): """Capture an authorized charge. + :param \*\*kwargs: arguments to perform a capture. :rtype: Charge """ path = self._instance_path(self._attributes['id']) + ('capture',) - return self._reload_data(self._request('post', path)) + return self._reload_data(self._request('post', path, kwargs)) def reverse(self): """Reverse an uncaptured charge. From 11941fd6885c96ad14712232fbe6a9ce97a42bf6 Mon Sep 17 00:00:00 2001 From: Yura Savin Date: Sat, 23 Sep 2023 11:48:20 +0400 Subject: [PATCH 2/4] Added a test for charge with kwargs --- omise/test/test_charge.py | 66 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/omise/test/test_charge.py b/omise/test/test_charge.py index 5a3dc68..7bfce56 100644 --- a/omise/test/test_charge.py +++ b/omise/test/test_charge.py @@ -1,6 +1,7 @@ -import mock import unittest +import mock + from .helper import _ResourceMixin @@ -736,6 +737,69 @@ def test_capture(self, api_call): 'https://api.omise.co/charges/chrg_test/capture', ) + @mock.patch('requests.post') + def test_capture_with_args(self, api_call): + charge = self._makeOne() + class_ = self._getTargetClass() + self.mockResponse(api_call, """{ + "object": "charge", + "id": "chrg_test", + "livemode": false, + "location": "/charges/chrg_test", + "amount": 100000, + "captured_amount": 50000, + "currency": "thb", + "description": "New description", + "capture": false, + "authorized": true, + "reversed": false, + "captured": true, + "transaction": null, + "failure_code": null, + "failure_message": null, + "refunded": 0, + "refunds": { + "object": "list", + "from": "1970-01-01T00:00:00+00:00", + "to": "2015-01-26T16:20:43+00:00", + "offset": 0, + "limit": 20, + "total": 0, + "data": [], + "location": "/charges/chrg_test/refunds" + }, + "card": { + "object": "card", + "id": "card_test", + "livemode": false, + "country": "th", + "city": "Bangkok", + "postal_code": "10320", + "financing": "credit", + "last_digits": "4242", + "brand": "Visa", + "expiration_month": 10, + "expiration_year": 2018, + "fingerprint": "098f6bcd4621d373cade4e832627b4f6", + "name": "Somchai Prasert", + "created": "2014-10-20T09:41:56Z" + }, + "customer": null, + "ip": "127.0.0.1", + "created": "2014-10-21T11:12:28Z" + }""") + + self.assertTrue(isinstance(charge, class_)) + self.assertFalse(charge.captured) + charge.capture(capture_amount=50000) + + self.assertTrue(charge.captured) + self.assertEqual(charge.captured_amount, 50000) + self.assertRequest( + api_call, + 'https://api.omise.co/charges/chrg_test/capture', + ) + @mock.patch('requests.post') def test_reverse(self, api_call): charge = self._makeOne() From 3305149b60f6517edf76b7197dbe552c604d3cfc Mon Sep 17 00:00:00 2001 From: AnasNaouchi Date: Sun, 1 Oct 2023 21:53:26 +0700 Subject: [PATCH 3/4] Fixed partial capture tests --- omise/test/test_charge.py | 91 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/omise/test/test_charge.py b/omise/test/test_charge.py index 7bfce56..1351db0 100644 --- a/omise/test/test_charge.py +++ b/omise/test/test_charge.py @@ -156,6 +156,92 @@ def test_create(self, api_call): } ) + @mock.patch('requests.post') + def test_create_partial_charge(self, api_call): + class_ = self._getTargetClass() + card_class_ = self._getCardClass() + self.mockResponse(api_call, """{ + "object": "charge", + "id": "chrg_test", + "livemode": false, + "location": "/charges/chrg_test", + "amount": 100000, + "authorization_type":"pre_auth", + "authorized_amount": 100000, + "captured_amount": 0, + "currency": "thb", + "description": "Order-384", + "capture": false, + "authorized": false, + "reversed": false, + "captured": false, + "transaction": null, + "refunded": 0, + "refunds": { + "object": "list", + "from": "1970-01-01T00:00:00+00:00", + "to": "2015-01-26T16:20:43+00:00", + "offset": 0, + "limit": 20, + "total": 0, + "data": [], + "location": "/charges/chrg_test/refunds" + }, + "failure_code": null, + "failure_message": null, + "card": { + "object": "card", + "id": "card_test", + "livemode": false, + "country": "th", + "city": "Bangkok", + "postal_code": "10320", + "financing": "credit", + "last_digits": "4242", + "brand": "Visa", + "expiration_month": 10, + "expiration_year": 2018, + "fingerprint": "098f6bcd4621d373cade4e832627b4f6", + "name": "Somchai Prasert", + "created": "2014-10-20T09:41:56Z" + }, + "customer": null, + "ip": "127.0.0.1", + "created": "2014-10-21T11:12:28Z" + }""") + + charge = class_.create( + amount=100000, + currency='thb', + description='Order-384', + ip='127.0.0.1', + card='tokn_test', + ) + + self.assertTrue(isinstance(charge, class_)) + self.assertTrue(isinstance(charge.card, card_class_)) + self.assertEqual(charge.id, 'chrg_test') + self.assertEqual(charge.amount, 100000) + self.assertEqual(charge.authorization_type, "pre_auth") + self.assertEqual(charge.authorized_amount, 100000) + self.assertEqual(charge.captured_amount, 0) + self.assertEqual(charge.currency, 'thb') + self.assertEqual(charge.description, 'Order-384') + self.assertEqual(charge.ip, '127.0.0.1') + self.assertEqual(charge.card.id, 'card_test') + self.assertEqual(charge.card.last_digits, '4242') + self.assertRequest( + api_call, + 'https://api.omise.co/charges', + { + 'amount': 100000, + 'currency': 'thb', + 'description': 'Order-384', + 'ip': '127.0.0.1', + 'card': 'tokn_test', + } + ) + @mock.patch('requests.post') def test_create_with_source(self, api_call): class_ = self._getTargetClass() @@ -747,6 +833,8 @@ def test_capture_with_args(self, api_call): "livemode": false, "location": "/charges/chrg_test", "amount": 100000, + "authorization_type": "pre_auth", + "authorized_amount": 100000, "captured_amount": 50000, "currency": "thb", "description": "New description", @@ -795,9 +883,12 @@ def test_capture_with_args(self, api_call): self.assertTrue(charge.captured) self.assertEqual(charge.captured_amount, 50000) + self.assertEqual(charge.authorization_type, "pre_auth") + self.assertEqual(charge.authorized_amount, 100000) self.assertRequest( api_call, 'https://api.omise.co/charges/chrg_test/capture', + {'capture_amount': 50000} ) @mock.patch('requests.post') From bf89654991be44cad6af146723837638b8bcbc3d Mon Sep 17 00:00:00 2001 From: AnasNaouchi Date: Tue, 3 Oct 2023 09:15:28 +0700 Subject: [PATCH 4/4] Added github token secret --- .github/workflows/code-coverage.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/code-coverage.yml b/.github/workflows/code-coverage.yml index 1e9f21f..d850f7f 100644 --- a/.github/workflows/code-coverage.yml +++ b/.github/workflows/code-coverage.yml @@ -24,4 +24,5 @@ jobs: - name: SonarCloud Scan uses: SonarSource/sonarcloud-github-action@master env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}