|
1 | 1 | """ |
2 | 2 | Tests for the orders app. |
3 | 3 | """ |
4 | | - |
5 | 4 | import logging |
6 | 5 |
|
7 | 6 | from django.test import TestCase |
|
10 | 9 |
|
11 | 10 | from .clients import EcommerceApiClient |
12 | 11 |
|
13 | | - |
14 | 12 | 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 |
15 | 18 | sample_response = {'count': 1, |
16 | 19 | 'results': [{'billing_address': {'city': 'Brighton', |
17 | 20 | 'country': 'US', |
@@ -76,35 +79,24 @@ class OrderRetrievalTests(TestCase): |
76 | 79 | Verify endpoint availability for order retrieval endpoint(s) |
77 | 80 | """ |
78 | 81 | maxDiff = None |
79 | | - ORDER_HISTORY_PATH = reverse('orders:order_history') |
80 | 82 |
|
81 | 83 | def setUp(self): |
82 | 84 | 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 |
90 | 86 |
|
91 | 87 | @patch('commerce_coordinator.apps.orders.clients.EcommerceApiClient.get_orders') |
92 | 88 | def test_EcommerceApiClient(self, mock_response): |
93 | 89 | """We can call the EcommerceApiClient successfully.""" |
| 90 | + mock_response.return_value = self.mock_response |
94 | 91 |
|
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 |
99 | 92 | 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) |
101 | 95 |
|
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).""" |
103 | 99 |
|
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) |
110 | 102 | self.assertEqual(response.status_code, 200) |
0 commit comments