base_adresse: truncate q to 200 characters (#67763)

This commit is contained in:
Benjamin Dauvergne 2022-07-28 11:31:29 +02:00
parent 7cf903431a
commit 7a04d9253f
2 changed files with 11 additions and 2 deletions

View File

@ -142,7 +142,7 @@ class BaseAdresse(AddressResource):
scheme, netloc, path, params, query, fragment = urlparse.urlparse(self.service_url)
path = urlparse.urljoin(path, 'search/')
query_args = {'q': q, 'limit': page_limit}
query_args = {'q': q[:200], 'limit': page_limit}
if zipcode:
query_args['postcode'] = zipcode
if citycode:

View File

@ -3,7 +3,7 @@
import datetime
import json
import os
from urllib.parse import urljoin
from urllib.parse import parse_qs, urljoin
import mock
import pytest
@ -198,6 +198,15 @@ def test_base_adresse_search(mocked_get, app, base_adresse):
assert data['display_name'] == 'Rue Roger Halope 49000 Angers'
@mock.patch('passerelle.utils.Request.get')
def test_base_adresse_search_limit_to_200(mocked_get, app, base_adresse):
endpoint = tests.utils.generic_endpoint_url('base-adresse', 'search', slug=base_adresse.slug)
assert endpoint == '/base-adresse/base-adresse/search'
mocked_get.return_value = tests.utils.FakedResponse(content=FAKED_CONTENT, status_code=200)
app.get(endpoint, params={'q': 'plop' * 200}, status=200)
assert len(parse_qs(mocked_get.call_args[0][0].split('?')[1])['q'][0]) == 200
@mock.patch('passerelle.utils.Request.get')
def test_base_adresse_search_path(mocked_get, app, base_adresse):
base_adresse.service_url = 'http://example.net/path/'