From fa0d51b66c5ec6e177eed4dd2678ce5655ed8e14 Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Wed, 7 Jun 2017 14:19:25 +0100 Subject: [PATCH] Added the free limit to the detailed service representation. --- app/schemas.py | 5 +++++ tests/app/service/test_rest.py | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/app/schemas.py b/app/schemas.py index 8f8395f3e..7971300b7 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -260,6 +260,11 @@ class ServiceSchema(BaseSchema): class DetailedServiceSchema(BaseSchema): statistics = fields.Dict() + free_sms_fragment_limit = fields.Method(method_name='get_free_sms_fragment_limit') + + def get_free_sms_fragment_limit(selfs, service): + return service.free_sms_fragment_limit() + class Meta: model = models.Service exclude = ( diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index bc6010fa2..2f16543df 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -160,7 +160,20 @@ def test_get_service_by_id_returns_free_sms_limit(client, sample_service): assert json_resp['data']['free_sms_fragment_limit'] == 250000 +def test_get_detailed_service_by_id_returns_free_sms_limit(client, sample_service): + + auth_header = create_authorization_header() + resp = client.get( + '/service/{}?detailed=True'.format(sample_service.id), + headers=[auth_header] + ) + assert resp.status_code == 200 + json_resp = json.loads(resp.get_data(as_text=True)) + assert json_resp['data']['free_sms_fragment_limit'] == 250000 + + def test_get_service_list_has_default_permissions(client, service_factory): + service_factory.get('one') service_factory.get('one') service_factory.get('two') service_factory.get('three')