Skip to content

Commit c3678c2

Browse files
committed
add tests for paddle api client
1 parent 0d56e16 commit c3678c2

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

tests/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,4 @@
9999
DJPADDLE_VENDOR_ID = "test-vendor-id"
100100
DJPADDLE_KEY = utils.generate_private_key()
101101
DJPADDLE_PUBLIC_KEY = utils.export_pubkey_as_pem(DJPADDLE_KEY)
102+
DJPADDLE_API_KEY = "test-api-key"

tests/test_api.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
from copy import deepcopy
2+
from unittest import mock
3+
4+
from django.test import TestCase
5+
from django.conf import settings
6+
7+
from djpaddle import api
8+
9+
from . import FAKE_ALERT_TEST_SUBSCRIPTION_CREATED
10+
11+
12+
class TestAPIRequest(TestCase):
13+
@mock.patch("djpaddle.api.requests.request")
14+
def test_api_request_returns_response(self, request_mock):
15+
data = {"response": ["response-data"]}
16+
request_mock.return_value = mock.Mock(ok=True)
17+
request_mock.return_value.json.return_value = data
18+
19+
response = api.api_request(method="get", uri="uri")
20+
self.assertEqual(data["response"], response)
21+
22+
@mock.patch("djpaddle.api.requests.request")
23+
def test_api_request_raises_on_missing_response(self, request_mock):
24+
request_mock.return_value = mock.Mock(ok=True)
25+
request_mock.return_value.json.return_value = {}
26+
27+
self.assertRaises(api.APIException, api.api_request, method="get", uri="uri")
28+
29+
@mock.patch("djpaddle.api.requests.request")
30+
def test_api_request_assert_authentication(self, request_mock):
31+
data = {"response": ["response-data"]}
32+
request_mock.return_value = mock.Mock(ok=True)
33+
request_mock.return_value.json.return_value = data
34+
35+
api.api_request(method="get", uri="uri")
36+
37+
args, kwargs = request_mock.call_args
38+
self.assertIn("json", kwargs)
39+
payload = kwargs["json"]
40+
41+
self.assertIn("vendor_id", payload)
42+
self.assertEqual(payload["vendor_id"], settings.DJPADDLE_VENDOR_ID)
43+
self.assertIn("vendor_auth_code", payload)
44+
self.assertEqual(payload["vendor_auth_code"], settings.DJPADDLE_API_KEY)

0 commit comments

Comments
 (0)