From d4080dae8579524216e35178bce40eff21e4a3eb Mon Sep 17 00:00:00 2001 From: Michael Bideau Date: Mon, 29 Jul 2019 14:30:50 +0200 Subject: [PATCH] Added 'collectivite' param to 'create_dossier()' endpoint, removed useless '*args' and '**kwargs' --- atreal_openads/models.py | 22 +++++++++++++--------- tests/test_atreal_openads.py | 6 ++++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/atreal_openads/models.py b/atreal_openads/models.py index 5b0304c..46c462c 100644 --- a/atreal_openads/models.py +++ b/atreal_openads/models.py @@ -273,7 +273,7 @@ class AtrealOpenads(BaseResource, HTTPResource): #~ } #~ } ) - def check_status(self, *args, **kwargs): + def check_status(self, request=None): """Check avaibility of the openADS.API service.""" url = urlparse.urljoin(self.openADS_API_url, '__api__') response = self.requests.get(url) @@ -286,7 +286,11 @@ class AtrealOpenads(BaseResource, HTTPResource): pattern='^(?P\w+)/?$', example_pattern='{type_dossier}/', parameters={ - 'type_dossier': {'description': _("Type of 'dossier'"), 'example_value': 'DIA'} + 'type_dossier': {'description': _("Type of 'dossier'"), 'example_value': 'DIA'}, + 'collectivite': { + 'description': _("Use this collectivite (instead of the default one)"), + 'example_value': '3' + } }, post={'description': _("Create an openADS 'dossier'"), 'request_body': { @@ -301,7 +305,7 @@ class AtrealOpenads(BaseResource, HTTPResource): #~ } } ) - def create_dossier(self, request, type_dossier, *args, **kwargs): + def create_dossier(self, request, type_dossier, collectivite=None): # loads the request body as JSON content json_data = json.loads(request.body) @@ -310,7 +314,7 @@ class AtrealOpenads(BaseResource, HTTPResource): self.log_json_payload(json_data, 'request') # build the payload - payload = { "collectivite": self.collectivite } + payload = { "collectivite": int(collectivite) if collectivite else int(self.collectivite) } payload["terrain"] = { "numero_voie": normalize(json_data['fields']['terrain_numero_voie']), @@ -550,7 +554,7 @@ class AtrealOpenads(BaseResource, HTTPResource): #~ } #~ } ) - def get_dossier(self, request, type_dossier, numero_dossier, *args, **kwargs): + def get_dossier(self, request, type_dossier, numero_dossier): # make a request to openADS.API url = urlparse.urljoin(self.openADS_API_url, '/dossier/%s/%s' % (type_dossier, numero_dossier)) @@ -608,7 +612,7 @@ class AtrealOpenads(BaseResource, HTTPResource): #~ } #~ } ) - def get_fwd_files(self, request, numero_dossier, fichier_id=None, *args, **kwargs): + def get_fwd_files(self, request, numero_dossier, fichier_id=None): payload = [] fwd_files = [] @@ -663,10 +667,10 @@ class AtrealOpenads(BaseResource, HTTPResource): #~ } #~ } ) - def get_fwd_files_status(self, request, numero_dossier, fichier_id=None, *args, **kwargs): + def get_fwd_files_status(self, request, numero_dossier, fichier_id=None): # get all files matching 'numero_dossier' and 'fichier_id' - fwd_files = self.get_fwd_files(request, numero_dossier, fichier_id, *args, **kwargs) + fwd_files = self.get_fwd_files(request, numero_dossier, fichier_id) # prepare the response payload payload = { @@ -709,7 +713,7 @@ class AtrealOpenads(BaseResource, HTTPResource): #~ } #~ } ) - def get_courrier(self, request, type_dossier, numero_dossier, *args, **kwargs): + def get_courrier(self, request, type_dossier, numero_dossier): # make a request to openADS.API url = urlparse.urljoin( diff --git a/tests/test_atreal_openads.py b/tests/test_atreal_openads.py index 7ec4d57..220fa73 100644 --- a/tests/test_atreal_openads.py +++ b/tests/test_atreal_openads.py @@ -351,6 +351,12 @@ def test_openads_create_dossier(app, atreal_openads): fake_resp_bad.status_code = 502 fake_resp_bad.reason = 'Bad gateway' + with pytest.raises(ValueError) as e: + with mock.patch('passerelle.utils.Request.post') as requests_post: + requests_post.return_value = fake_resp_bad + atreal_openads.create_dossier(req, 'DIA',collectivite='not an integer') + assert unicode(e.value) == "invalid literal for int() with base 10: 'not an integer'" + with pytest.raises(APIError) as e: with mock.patch('passerelle.utils.Request.post') as requests_post: requests_post.return_value = fake_resp_bad