Skip to content

Commit 2922381

Browse files
henrykraphaelm
authored andcommitted
Add test for parsing of count-repeated fields
1 parent 08701a0 commit 2922381

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

tests/test_message_parser.py

+29-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,35 @@ def test_parse_complicated():
3030
assert len(m.segments) == 4
3131
assert m.segments[3].__class__.__name__ == "HNHBS1"
3232

33-
def test_HIRMG2_parse():
33+
def test_parse_counted():
34+
from fints.segments import FinTS3Segment
35+
from fints.formals import NumericField
36+
37+
class ITST1(FinTS3Segment):
38+
a = NumericField(count=3)
39+
40+
m1 = FinTS3Parser().parse_message(b"ITST:1:1+1+2+3'")
41+
assert m1.segments[0].header.type == 'ITST'
42+
assert len(m1.segments[0].a) == 3
43+
assert m1.segments[0].a[0] == 1
44+
assert m1.segments[0].a[1] == 2
45+
assert m1.segments[0].a[2] == 3
46+
47+
class ITST2(FinTS3Segment):
48+
a = NumericField(max_count=3)
49+
50+
m2 = FinTS3Parser().parse_message(b"ITST:1:2+1+2+3'")
51+
assert m1.segments[0].a[2] == 3
52+
53+
with pytest.raises(IndexError):
54+
FinTS3Parser().parse_message(b"ITST:1:2+1+2+3+4'")
55+
56+
m = FinTS3Parser().parse_message(b"ITST:1:2+1+2'")
57+
assert len(m2.segments[0].a) == 2
58+
assert m2.segments[0].a[1] == 2
59+
60+
61+
def test_parse_HIRMG2():
3462
d = b"HIRMG:3:2+0010::Nachricht entgegengenommen.+0100::Dialog beendet.'"
3563
m = FinTS3Parser().parse_message(d)
3664

0 commit comments

Comments
 (0)