Skip to content

Commit 405ad3c

Browse files
committed
Adding resources for Service Plan and the equivalent unit tests
1 parent 8b9289d commit 405ad3c

File tree

4 files changed

+50
-18
lines changed

4 files changed

+50
-18
lines changed

tests/integration/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ def account_user(account,account_user_params) -> AccountUser:
150150
cleanup(user)
151151

152152
@pytest.fixture(scope='module')
153-
def service_plan_params() -> dict:
153+
def service_plan_params(service) -> dict:
154154
suffix = get_suffix()
155155
return dict(name=f"test-{suffix}")
156156

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import pytest
2+
3+
4+
from tests.integration.conftest import service
5+
from threescale_api.errors import ApiClientError
6+
7+
from tests.integration import asserts
8+
9+
def test_list_service_plans(service, service_plan):
10+
resource = service.service_plans.list()
11+
assert len(resource) >= 1
12+
13+
def test_check_service_plan_creation(service, service_plan, service_plan_params):
14+
asserts.assert_resource(service_plan)
15+
asserts.assert_resource_params(service_plan, service_plan_params)
16+
assert service_plan.exists()
17+
18+
def test_read_service_plans(service, service_plan, service_plan_params):
19+
asserts.assert_resource(service_plan)
20+
resource = service.service_plans.read(service_plan.entity_id)
21+
asserts.assert_resource(resource)
22+
asserts.assert_resource_params(service_plan,service_plan_params)
23+
24+
def test_update_service_plans(service, service_plan, service_plan_params):
25+
asserts.assert_resource(service_plan)
26+
service_plan['state'] = 'publish'
27+
service_plan['approval_required'] = True
28+
resource = service.service_plans.update(service_plan.entity_id, service_plan_params)
29+
asserts.assert_resource(resource)
30+
asserts.assert_resource_params(service_plan, service_plan_params)
31+
32+
def test_set_default_service_plan(service, service_plan, service_plan_params):
33+
asserts.assert_resource(service_plan)
34+
resource = service_plan.set_default()
35+
asserts.assert_resource(resource)
36+
asserts.assert_resource_params(service_plan, service_plan_params)

tests/integration/test_integration_service_subscriptions.py

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,13 @@ def test_list_service_subscriptions(account, service_subscription):
1111
assert len(resource) >= 1
1212

1313
def test_should_create_service_subscription(account, service_subscription, service_subscription_params):
14-
1514
asserts.assert_resource(service_subscription)
1615
asserts.assert_resource_params(service_subscription, service_subscription_params)
1716

1817
def test_should_read_service_subscription(account, service_subscription, service_subscription_params):
19-
20-
2118
resource = account.service_subscriptions.read(service_subscription.entity_id)
2219
asserts.assert_resource(resource)
2320
asserts.assert_resource_params(service_subscription,service_subscription_params)
2421

25-
#def test_should_update_service_subscription(account, service_subscription, service_subscription_params):
26-
# service_subscription_params['plan_id'] = 100
27-
# resource = account.service_subscriptions.update(service_subscription.entity_id, service_subscription_params)
28-
# asserts.assert_resource(resource)
29-
# asserts.assert_resource_params(resource, service_subscription_params, [param for param in service_subscription_params.keys() if param != 'id'])
30-
# resource_updated = account.service_subscription.read(params=service_subscription_params)
31-
# asserts.assert_resource(resource_updated)
32-
# asserts.assert_resource_params(resource_updated, service_subscription_params, [param for param in service_subscription_params.keys() if param != 'id'])
33-
34-
#def test_should_approve_service_subscription(account, service_subscription, service_subscription_params):
35-
# resource = account.service_subscriptions.approve_service_subscription(params=service_subscription_params)
36-
# asserts.assert_resource(resource)
37-
# read = account.service_subscriptions.read(service_subscription.entity_id)
38-
# asserts.assert_resource(read)
3922

4023

threescale_api/resources.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,7 @@ def pending(self, entity_id, **kwargs) -> 'Account':
273273
"""
274274
return self.set_state(entity_id=entity_id, state='make_pending', **kwargs)
275275

276+
276277
class ServiceSubscriptions(DefaultClient):
277278

278279
def __init__(self, *args, entity_name='service_subscription',
@@ -298,6 +299,7 @@ def change_plan_service_subscription(self, entity_id: int, plan_id: int, **kwarg
298299
instance = utils.extract_response(response=response)
299300
return instance
300301

302+
301303
class ServicePlans(DefaultClient):
302304

303305
def __init__(self, *args, entity_name='service_plan',
@@ -309,6 +311,11 @@ def __init__(self, *args, entity_name='service_plan',
309311
def url(self) -> str:
310312
return self.parent.url + '/service_plans'
311313

314+
def service_plan_set_default(self, entity_id: int, **kwargs):
315+
url = self.url + f"/{entity_id}/default"
316+
response = self.rest.put(url=url, **kwargs)
317+
instance = self._create_instance(response=response)
318+
return instance
312319

313320

314321
class Applications(DefaultStateClient):
@@ -1175,6 +1182,7 @@ def service(self) -> 'Service':
11751182
def backend(self) -> 'Backend':
11761183
return self.metric.parent
11771184

1185+
11781186
class ServiceSubscription(DefaultResource):
11791187

11801188
def __init__(self, **kwargs):
@@ -1507,11 +1515,16 @@ def test_request(self, relpath=None, verify: bool = None):
15071515

15081516
return client.get(relpath)
15091517

1518+
15101519
class ServicePlan(DefaultResource):
15111520

15121521
def __init__(self, **kwargs):
15131522
super().__init__(**kwargs)
15141523

1524+
def set_default(self, **kwargs):
1525+
return self.client.service_plan_set_default(entity_id=self.entity_id, **kwargs)
1526+
1527+
15151528
class ApplicationKey(DefaultResource):
15161529
def __init__(self, entity_name='', **kwargs):
15171530
super().__init__(entity_name=entity_name, **kwargs)

0 commit comments

Comments
 (0)