416 |
416 |
mock_resp = Response()
|
417 |
417 |
mock_resp.status_code = 404
|
418 |
418 |
mock_get.return_value = mock_resp
|
|
419 |
resp = app.get('/lingo/item/%s/%s/' % (remote_regie.id, encrypt_id))
|
|
420 |
assert '<h2>Technical error: impossible to retrieve invoices.</h2>' in resp.text
|
|
421 |
|
|
422 |
|
|
423 |
@mock.patch('combo.apps.lingo.models.Regie.pay_invoice')
|
|
424 |
@mock.patch('combo.apps.lingo.models.requests.get')
|
|
425 |
def test_pay_remote_item_failure(mock_get, mock_pay_invoice, app, remote_regie):
|
|
426 |
encrypt_id = aes_hex_encrypt(settings.SECRET_KEY, force_bytes('F201601'))
|
|
427 |
mock_json = mock.Mock(status_code=200)
|
|
428 |
mock_json.json.return_value = {'err': 0, 'data': INVOICES[0]}
|
|
429 |
mock_get.return_value = mock_json
|
|
430 |
mock_pay_invoice.return_value = mock.Mock(status_code=200)
|
|
431 |
url = '/lingo/item/%s/%s/' % (remote_regie.id, encrypt_id)
|
|
432 |
resp = app.get(url)
|
|
433 |
|
|
434 |
form = resp.form
|
|
435 |
form['next_url'] = url
|
|
436 |
|
|
437 |
mock_json = mock.Mock()
|
|
438 |
mock_json.json.return_value = {'err': 1}
|
|
439 |
mock_get.return_value = mock_json
|
|
440 |
resp = form.submit().follow()
|
|
441 |
assert 'Technical error: impossible to retrieve invoices.' in resp.text
|
|
442 |
|
|
443 |
mock_json.json.return_value = {'err': 0}
|
|
444 |
resp = form.submit().follow()
|
|
445 |
assert 'No item was found.' in resp.text
|
|
446 |
|
|
447 |
mock_get.side_effect = ConnectionError('where is my hostname?')
|
|
448 |
resp = form.submit().follow()
|
|
449 |
assert 'Technical error: impossible to retrieve invoices.' in resp.text
|
|
450 |
|
|
451 |
mock_resp = Response()
|
|
452 |
mock_resp.status_code = 404
|
|
453 |
mock_get.return_value = mock_resp
|
|
454 |
resp = form.submit().follow()
|
|
455 |
assert 'Technical error: impossible to retrieve invoices.' in resp.text
|
419 |
456 |
|
420 |
457 |
|
421 |
458 |
@mock.patch('combo.apps.lingo.models.requests.get')
|
422 |
|
-
|