From ae4e548dc5c3c985af8f5bb52f1e33efb754c8b5 Mon Sep 17 00:00:00 2001 From: zevav Date: Tue, 13 Oct 2020 02:02:01 +0200 Subject: [PATCH] test invalid data --- app/tests/test_ledger.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/app/tests/test_ledger.py b/app/tests/test_ledger.py index 9f36c09..be0e838 100644 --- a/app/tests/test_ledger.py +++ b/app/tests/test_ledger.py @@ -2,14 +2,14 @@ import datetime as dt from decimal import Decimal from random import choice -from pytest import fixture +import pytest from app import ledger ENTITIES = ("mary", "john", "insurance", "supermarket", "lottery", "joe", "gas station") -@fixture +@pytest.fixture def ledger_data(): return ( "2015-01-16,john,mary,125.00", @@ -18,7 +18,23 @@ def ledger_data(): ) -@fixture +@pytest.fixture +def invalid_data_sets(): + return ( + ( + "201-01-16,john,mary,125.00", + "2015-01-17,john,supermarket,20.00", + "2015-01-17,mary,insurance,100.00", + ), + ( + "2015-01-16,john,,125.00", + "2015-01-17,john,supermarket,20.00", + "2015-01-17,mary,insurance,100.00", + ), + ) + + +@pytest.fixture def random_data(): N = 10_000 data = [] @@ -31,11 +47,17 @@ def random_data(): return data -@fixture +@pytest.fixture def ingest(ledger_data): ledger.ingest(ledger_data) +def test_invalid(invalid_data_sets): + for invalid_data in invalid_data_sets: + with pytest.raises(ledger.ValidationError): + ledger.ingest(invalid_data) + + def test_ledger_ingest(ingest): assert len(ledger._get_transactions()) == 6 assert len(ledger.entities) == 4