Skip to content

Commit 8fc0333

Browse files
author
Diane Kaplan
committed
fix: add unit test for view function, simplify mock
1 parent 60e5db1 commit 8fc0333

File tree

2 files changed

+14
-23
lines changed

2 files changed

+14
-23
lines changed

commerce_coordinator/apps/orders/tests.py

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""
22
Tests for the orders app.
33
"""
4-
54
import logging
65

76
from django.test import TestCase
@@ -10,8 +9,12 @@
109

1110
from .clients import EcommerceApiClient
1211

13-
1412
logger = logging.getLogger(__name__)
13+
14+
# test parameters used by order history endpoint
15+
test_params = {'username': 'TestUser', "page": 1, "page_size": 20}
16+
17+
# sample response from EcommerceApiClient.get_orders
1518
sample_response = {'count': 1,
1619
'results': [{'billing_address': {'city': 'Brighton',
1720
'country': 'US',
@@ -76,35 +79,24 @@ class OrderRetrievalTests(TestCase):
7679
Verify endpoint availability for order retrieval endpoint(s)
7780
"""
7881
maxDiff = None
79-
ORDER_HISTORY_PATH = reverse('orders:order_history')
8082

8183
def setUp(self):
8284
super().setUp()
83-
84-
class TestResponse:
85-
def __init__(self, **kwargs):
86-
self.__dict__ = kwargs
87-
88-
# mock response from ecommerce orders API
89-
self.test_response = TestResponse(**sample_response)
85+
self.mock_response = sample_response
9086

9187
@patch('commerce_coordinator.apps.orders.clients.EcommerceApiClient.get_orders')
9288
def test_EcommerceApiClient(self, mock_response):
9389
"""We can call the EcommerceApiClient successfully."""
90+
mock_response.return_value = self.mock_response
9491

95-
mock_response.return_value = self.test_response
96-
params = {'username': 'TestUser', "page": 1, "page_size": 20}
97-
98-
# Call the new function (EcommerceApiClient().get_orders(params)), mocking the response
9992
ecommerce_api_client = EcommerceApiClient()
100-
ecommerce_response = ecommerce_api_client.get_orders(params)
93+
ecommerce_response = ecommerce_api_client.get_orders(test_params)
94+
self.assertEqual(sample_response, ecommerce_response)
10195

102-
self.assertEqual(sample_response, ecommerce_response.__dict__)
96+
@patch('commerce_coordinator.apps.orders.clients.EcommerceApiClient.get_orders')
97+
def test_ecommerce_view(self, mock_response):
98+
"""We can call get_user_orders__ecommerce successfully (via its url)."""
10399

104-
def test_ecommerce_view(self):
105-
"""We can call get_user_orders__ecommerce successfully."""
106-
test_params = {'username': 'edx', "page": 1, "page_size": 20}
107-
breakpoint()
108-
response = self.client.get(self.ORDER_HISTORY_PATH, test_params) # Invalid URL 'replace-me/oauth2/access_token': No scheme supplied. Perhaps you meant http://replace-me/oauth2/access_token?
109-
# response = self.client.get('/orders/ecommerce/', test_params) # <HttpResponseNotFound status_code=404, "text/html">
100+
mock_response.return_value = self.mock_response
101+
response = self.client.get(reverse('orders:order_history'), test_params)
110102
self.assertEqual(response.status_code, 200)

commerce_coordinator/apps/orders/views.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,4 @@ def get_user_orders__ecommerce(request):
2121

2222
ecommerce_api_client = EcommerceApiClient()
2323
ecommerce_response = ecommerce_api_client.get_orders(params)
24-
2524
return JsonResponse(ecommerce_response)

0 commit comments

Comments
 (0)