|
|
|
|
@ -254,6 +254,23 @@ def test_partial_missing_context_has_safe_code_and_no_preview(source):
|
|
|
|
|
assert not ImportBatch.objects.exists() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_partial_context_year_underflow_does_not_interrupt_another_ready_file(source, bank): |
|
|
|
|
card = create_account(name="Synthetic boundary card", kind="CREDIT_CARD", actor=ACTOR) |
|
|
|
|
data = ("\n" * 20 + "Data de emissão: 20/01/0001\n" |
|
|
|
|
+ f"05/01{'Synthetic boundary row':43}BR 12,50 0,00\n").encode() |
|
|
|
|
exceptional = source(data, "partial.txt") |
|
|
|
|
ready = source() |
|
|
|
|
results = [prepare(discovered, account) for discovered, account in ((exceptional, card), (ready, bank))] |
|
|
|
|
assert results[0].state == "NEEDS_ATTENTION" |
|
|
|
|
assert results[0].code == "INVALID_CREATION_DATE" |
|
|
|
|
assert results[0].batch_id is None |
|
|
|
|
assert results[1].state == "READY" |
|
|
|
|
assert commit(results[1]).counts["created"] == 2 |
|
|
|
|
assert Transaction.objects.count() == SourceRecord.objects.count() == 2 |
|
|
|
|
assert not ImportBatch.objects.filter(profile="OUROCARD_PARTIAL_V1").exists() |
|
|
|
|
assert_no_open_preview() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_partial_valid_context_resolves_new_year_and_commits(source): |
|
|
|
|
card = create_account(name="Synthetic partial card", kind="CREDIT_CARD", actor=ACTOR) |
|
|
|
|
data = ("\n" * 20 + "Data de emissão: 20/01/2026\n" |
|
|
|
|
|