From: Henryk Plötz Date: Wed, 8 Aug 2018 02:40:03 +0000 (+0200) Subject: Add test for parsing of count-repeated fields X-Git-Tag: v2.0.0~1^2~152 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2922381e5e922f395965ad6ef255d95692f28812;p=thirdparty%2Fpython-fints.git Add test for parsing of count-repeated fields --- diff --git a/tests/test_message_parser.py b/tests/test_message_parser.py index 3fa825c..76561f7 100644 --- a/tests/test_message_parser.py +++ b/tests/test_message_parser.py @@ -30,7 +30,35 @@ def test_parse_complicated(): assert len(m.segments) == 4 assert m.segments[3].__class__.__name__ == "HNHBS1" -def test_HIRMG2_parse(): +def test_parse_counted(): + from fints.segments import FinTS3Segment + from fints.formals import NumericField + + class ITST1(FinTS3Segment): + a = NumericField(count=3) + + m1 = FinTS3Parser().parse_message(b"ITST:1:1+1+2+3'") + assert m1.segments[0].header.type == 'ITST' + assert len(m1.segments[0].a) == 3 + assert m1.segments[0].a[0] == 1 + assert m1.segments[0].a[1] == 2 + assert m1.segments[0].a[2] == 3 + + class ITST2(FinTS3Segment): + a = NumericField(max_count=3) + + m2 = FinTS3Parser().parse_message(b"ITST:1:2+1+2+3'") + assert m1.segments[0].a[2] == 3 + + with pytest.raises(IndexError): + FinTS3Parser().parse_message(b"ITST:1:2+1+2+3+4'") + + m = FinTS3Parser().parse_message(b"ITST:1:2+1+2'") + assert len(m2.segments[0].a) == 2 + assert m2.segments[0].a[1] == 2 + + +def test_parse_HIRMG2(): d = b"HIRMG:3:2+0010::Nachricht entgegengenommen.+0100::Dialog beendet.'" m = FinTS3Parser().parse_message(d)