Skip to content

Commit ddb3927

Browse files
Added test for error message processing.
1 parent 877db48 commit ddb3927

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

django/finance/tests/test_accounting_cct.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,3 +482,44 @@ def test_delete_transaction(self, mock_post, mock_get):
482482
mock_post.assert_called_once_with(
483483
f"{self.cohiva_test_endpoint}journal/delete.json?ids=801", data=None, auth=ANY
484484
)
485+
486+
@patch("finance.accounting.cashctrl.requests.get")
487+
@patch("finance.accounting.cashctrl.requests.post")
488+
def test_process_api_error(self, mock_post, mock_get):
489+
messages = []
490+
with AccountingManager(messages) as book:
491+
# configure fake responses
492+
mock_get.return_value.raise_for_status.side_effect = None
493+
mock_get.side_effect = self.fetch_account_responses
494+
495+
mock_post.return_value.json.return_value = {
496+
"success": False,
497+
"message": None,
498+
"errors": [
499+
{
500+
"field": "creditId",
501+
"message": "This account does not exist.",
502+
},
503+
{
504+
"field": "field2",
505+
"message": "Another error for field2",
506+
},
507+
],
508+
}
509+
mock_post.return_value.raise_for_status.side_effect = None
510+
511+
with self.assertRaisesRegex(
512+
RuntimeError,
513+
(
514+
"CashCtrl API error: creditId: This account does not exist.; "
515+
"field2: Another error for field2 - for request"
516+
),
517+
):
518+
book.add_transaction(
519+
100.00,
520+
self.account1,
521+
self.account2,
522+
None,
523+
"Test error processing",
524+
autosave=False,
525+
)

0 commit comments

Comments
 (0)