diff --git a/tests/test_store.py b/tests/test_store.py new file mode 100644 index 0000000..0345552 --- /dev/null +++ b/tests/test_store.py @@ -0,0 +1,45 @@ +import requests.exceptions +import responses + +from abstract_cloud_test import AbstractCloudTest + + +class SubscriptionInfoTest(AbstractCloudTest): + def setUp(self, **kwargs): + super().setUp(**kwargs) + self.enter_app_context() + self.srv = self.app.config['EXTERNAL_SUBSCRIPTIONS_MANAGEMENT_SERVER'] + + @responses.activate + def test_happy(self): + api_payload = {"shop_id": 14447, + "cloud_access": 1, + "paid_balance": 198, + "balance_currency": "USD", + "start_date": "2016-01-09 17:24:27", + "expiration_date": "2018-01-09 16:25:04", + "subscription_status": "wc-active"} + responses.add('GET', self.srv, json=api_payload) + + from cloud.store import fetch_subscription_info + + resp = fetch_subscription_info('exampleuser@example.com') + self.assertEqual(resp, api_payload) + + @responses.activate + def test_trouble_connecting(self): + responses.add('GET', self.srv, body=requests.exceptions.ConnectionError('mocked i/o err')) + + from cloud.store import fetch_subscription_info + + resp = fetch_subscription_info('exampleuser@example.com') + self.assertIsNone(resp) # should not bubble the exception but just return None + + @responses.activate + def test_bad_response_code(self): + responses.add('GET', self.srv, status=500) + + from cloud.store import fetch_subscription_info + + resp = fetch_subscription_info('exampleuser@example.com') + self.assertIsNone(resp) # should not raise exception but just return None