def test_invalid():
    message1 = rb"""12"""

    with pytest.raises(ValueError):
        FinTS3Parser.explode_segments(message1)

    message2 = rb"""@2@12ab'"""

    with pytest.raises(ValueError):
        FinTS3Parser.explode_segments(message2)

    message3 = rb"""ab@2@12'"""

    with pytest.raises(ValueError):
        FinTS3Parser.explode_segments(message3)

    message4 = rb"""ab@@'"""

    with pytest.raises(ValueError):
        FinTS3Parser.explode_segments(message4)

    message5 = rb"""@2@12ab"""

    with pytest.raises(ValueError):
        FinTS3Parser.explode_segments(message5)

    message6 = rb"""HNHBS:5:1'"""
    with pytest.raises(FinTSParserError, match='^Required field'):
        m = FinTS3Parser().parse_message(message6)
Exemple #2
0
def test_implode_roundtrip_simple():
    segments = FinTS3Parser.explode_segments(TEST_MESSAGES['basic_simple'])
    assert FinTS3Serializer.implode_segments(
        segments) == TEST_MESSAGES['basic_simple']

    message = FinTS3Parser().parse_message(segments)
    assert FinTS3Serializer().serialize_message(
        message) == TEST_MESSAGES['basic_simple']
Exemple #3
0
def test_implode_1():
    m = [[
        ['IIMPTST', '1', '1'],
        '1\'',
        '2+',
        [
            '1@',
            '2:',
            b'5@+\':',
        ],
    ], [
        ['IIMPTST', '2', '1'],
        '3?',
        '4',
    ]]

    s = FinTS3Serializer.implode_segments(m)

    assert s == rb"""IIMPTST:1:1+1?'+2?++1?@:2?::@5@5@+':'IIMPTST:2:1+3??+4'"""

    assert FinTS3Parser.explode_segments(s) == m
def test_explode(input_name):
    segments = FinTS3Parser.explode_segments(TEST_MESSAGES[input_name])
    if input_name.startswith('basic_'):
        assert len(segments) == 4