Projet

Général

Profil

0001-utils-allow-cookies-usage-on-requests-27654.patch

Emmanuel Cazenave, 30 octobre 2018 12:24

Télécharger (1,98 ko)

Voir les différences:

Subject: [PATCH] utils: allow cookies usage on requests (#27654)

 passerelle/utils/__init__.py |  5 +++--
 tests/test_requests.py       | 17 +++++++++++++++++
 2 files changed, 20 insertions(+), 2 deletions(-)
passerelle/utils/__init__.py
214 214
        if 'timeout' not in kwargs:
215 215
            kwargs['timeout'] = settings.REQUESTS_TIMEOUT
216 216

  
217
        # don't use persistent cookies
218
        self.cookies.clear()
217
        keep_cookies = getattr(self.resource, 'keep_cookies', False)
218
        if not keep_cookies:
219
            self.cookies.clear()
219 220

  
220 221
        response = super(Request, self).request(method, url, **kwargs)
221 222

  
tests/test_requests.py
327 327
        assert mocked_get.call_args[1]['timeout'] == 42
328 328
        Request(logger=logger).get('http://example.net/whatever', timeout=None)
329 329
        assert mocked_get.call_args[1]['timeout'] is None
330

  
331

  
332
@mock.patch('passerelle.utils.RequestSession.request')
333
def test_requests_cookies(mocked_get, caplog):
334
    resource = MockResource()
335
    logger = logging.getLogger('requests')
336
    request = Request(resource=resource, logger=logger)
337
    request.cookies = mock.Mock()
338

  
339
    # by default cookies are cleared
340
    request.get('http://some.example.org/')
341
    assert request.cookies.clear.call_count == 1
342

  
343
    # if keep_cookies is set to True on the resource, no cookies clearing
344
    resource.keep_cookies = True
345
    request.get('http://some.example.org/')
346
    assert request.cookies.clear.call_count == 1
330
-