lingo: do not cache requests.get results (#17828)

This commit is contained in:
Thomas NOËL 2017-07-28 01:50:07 +02:00
parent 109cccf656
commit 5cf7d09d3f
2 changed files with 20 additions and 11 deletions

View File

@ -129,7 +129,7 @@ class Regie(models.Model):
url = self.webservice_url + '/invoices/'
if history:
url += 'history/'
items = requests.get(url, user=user, remote_service='auto').json()
items = requests.get(url, user=user, remote_service='auto', cache_duration=0).json()
if items.get('data'):
return [build_remote_item(item, self) for item in items.get('data')]
return []
@ -139,7 +139,7 @@ class Regie(models.Model):
if not self.is_remote():
return self.basketitem_set.get(pk=invoice_id)
url = self.webservice_url + '/invoice/%s/' % invoice_id
response = requests.get(url, user=user, remote_service='auto', log_errors=log_errors)
response = requests.get(url, user=user, remote_service='auto', cache_duration=0, log_errors=log_errors)
if response.status_code == 404:
raise ObjectDoesNotExist()
response.raise_for_status()
@ -153,7 +153,7 @@ class Regie(models.Model):
"""
if self.is_remote() and user:
url = self.webservice_url + '/invoice/%s/pdf/' % invoice_id
return requests.get(url, user=user, remote_service='auto')
return requests.get(url, user=user, remote_service='auto', cache_duration=0)
raise PermissionDenied
def pay_invoice(self, invoice_id, transaction_id, transaction_date):

View File

@ -1,3 +1,4 @@
import json
import pytest
import mock
import urlparse
@ -85,9 +86,10 @@ def test_remote_regie_active_invoices_cell(mock_request, remote_regie):
assert cell.is_relevant(context) is True
# show regie with an invoice
mock_json = mock.Mock()
mock_json.json.return_value = {'err': 0, 'data': INVOICES}
mock_request.return_value = mock_json
ws_invoices = {'err': 0, 'data': INVOICES}
mock_response = mock.Mock(status_code=200, content=json.dumps(ws_invoices))
mock_response.json.return_value = ws_invoices
mock_request.return_value = mock_response
content = cell.render(context)
assert 'F-2016-One' in content
assert '123.45' in content
@ -105,7 +107,10 @@ def test_remote_regie_active_invoices_cell(mock_request, remote_regie):
assert check_query(querystring, 'combo') == True
# with no invoice
mock_json.json.return_value = {'err': 0, 'data': []}
ws_invoices = {'err': 0, 'data': []}
mock_response = mock.Mock(status_code=200, content=json.dumps(ws_invoices))
mock_response.json.return_value = ws_invoices
mock_request.return_value = mock_response
content = cell.render(context)
assert 'No items yet' in content
@ -126,9 +131,10 @@ def test_remote_regie_past_invoices_cell(mock_request, remote_regie):
assert cell.is_relevant(context) is True
# show regie with an invoice
mock_json = mock.Mock()
mock_json.json.return_value = {'err': 0, 'data': INVOICES}
mock_request.return_value = mock_json
ws_invoices = {'err': 0, 'data': INVOICES}
mock_response = mock.Mock(status_code=200, content=json.dumps(ws_invoices))
mock_response.json.return_value = ws_invoices
mock_request.return_value = mock_response
content = cell.render(context)
assert 'F-2016-One' in content
assert '123.45' in content
@ -146,7 +152,10 @@ def test_remote_regie_past_invoices_cell(mock_request, remote_regie):
assert check_query(querystring, 'combo') == True
# with no invoice
mock_json.json.return_value = {'err': 0, 'data': []}
ws_invoices = {'err': 0, 'data': []}
mock_response = mock.Mock(status_code=200, content=json.dumps(ws_invoices))
mock_response.json.return_value = ws_invoices
mock_request.return_value = mock_response
content = cell.render(context)
assert 'No items yet' in content