@@ -30,7 +30,35 @@ def test_parse_complicated():
30
30
assert len (m .segments ) == 4
31
31
assert m .segments [3 ].__class__ .__name__ == "HNHBS1"
32
32
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 ():
34
62
d = b"HIRMG:3:2+0010::Nachricht entgegengenommen.+0100::Dialog beendet.'"
35
63
m = FinTS3Parser ().parse_message (d )
36
64
0 commit comments