Esempio n. 1
0
def test_del_field():
    doc_dec = {}
    iso8583.add_field(doc_dec, "t", "0210")

    r = iso8583.del_field(doc_dec, "t")
    assert r == "0210"
    assert ("t" in doc_dec) is False
    assert doc_dec["bm"] == set()

    r = iso8583.del_field(doc_dec, "t")
    assert r is None
    assert ("t" in doc_dec) is False
    assert doc_dec["bm"] == set()

    doc_dec = {}
    iso8583.add_field(doc_dec, "2", "1234567890")
    r = iso8583.del_field(doc_dec, "2")
    assert r == "1234567890"
    assert ("2" in doc_dec) is False
    assert doc_dec["bm"] == set()

    r = iso8583.del_field(doc_dec, "2")
    assert r is None
    assert ("2" in doc_dec) is False
    assert doc_dec["bm"] == set()

    doc_dec = {}
    r = iso8583.del_field(doc_dec, "3")
    assert r is None
    assert ("3" in doc_dec) is False
    assert doc_dec["bm"] == set()
Esempio n. 2
0
def test_pp_stream():
    spec["h"]["max_len"] = 6
    spec["h"]["len_type"] = 0
    doc_dec = {}
    iso8583.add_field(doc_dec, "h", "header")
    iso8583.add_field(doc_dec, "t", "0200")
    iso8583.add_field(doc_dec, "2", "12345678")
    iso8583.add_field(doc_dec, "44", "123")
    iso8583.add_field(doc_dec, "123", "123")
    iso8583.encode(doc_dec, spec)
    sio = StringIO()
    iso8583.pp(doc_dec, spec, stream=sio)

    r = sio.getvalue().split("\n")

    assert r[0] == "'bm'  Enabled Fields                      : [1, 2, 44, 123]"
    assert r[1] == "'h'   Message Header                      : [header]"
    assert r[2] == "'t'   Message Type                        : [0200]"
    assert r[3] == "'p'   Bitmap, Primary                     : [C000000000100000]"
    assert r[4] == "'1'   Bitmap, Secondary                   : [0000000000000020]"
    assert r[5] == "'2'   Primary Account Number (PAN)        : 08 [12345678]"
    assert r[6] == "'44'  Additional Response Data            : 03 [123]"
    assert r[7] == "'123' Reserved for Private Use            : 003 [123]"
    assert r[8] == ""
    assert len(r) == 9
Esempio n. 3
0
def test_pp_no_desc(capsys):
    spec["h"]["max_len"] = 0
    spec["h"]["len_type"] = 0
    doc_dec = {}
    iso8583.add_field(doc_dec, "t", "0200")
    iso8583.add_field(doc_dec, "2", "12345678")
    iso8583.add_field(doc_dec, "44", "123")
    iso8583.add_field(doc_dec, "123", "123")
    iso8583.encode(doc_dec, spec)
    iso8583.pp(doc_dec, spec, 0)

    captured = capsys.readouterr()

    r = captured.out.split("\n")

    assert r[0] == "'bm'  : [1, 2, 44, 123]"
    assert r[1] == "'t'   : [0200]"
    assert r[2] == "'p'   : [C000000000100000]"
    assert r[3] == "'1'   : [0000000000000020]"
    assert r[4] == "'2'   : 08 [12345678]"
    assert r[5] == "'44'  : 03 [123]"
    assert r[6] == "'123' : 003 [123]"
    assert r[7] == ""
    assert len(r) == 8
Esempio n. 4
0
def test_add_field():
    doc_dec = {}
    iso8583.add_field(doc_dec, "t", "0210")
    iso8583.add_field(doc_dec, "t", "0210")
    assert doc_dec["bm"] == set()
    assert doc_dec["t"] == "0210"

    doc_dec = {}
    iso8583.add_field(doc_dec, "2", "1234567890")
    iso8583.add_field(doc_dec, "2", "1234567890")
    assert doc_dec["bm"] == set([2])
    assert doc_dec["2"] == "1234567890"

    doc_dec = {}
    iso8583.add_field(doc_dec, "t", "0210")
    iso8583.add_field(doc_dec, "t", "0210")
    assert doc_dec["bm"] == set()
    assert doc_dec["t"] == "0210"

    doc_dec = {}
    iso8583.add_field(doc_dec, "2", "1234567890")
    iso8583.add_field(doc_dec, "2", "1234567890")
    assert doc_dec["bm"] == set([2])
    assert doc_dec["2"] == "1234567890"
Esempio n. 5
0
def test_pp_optional_fields(capsys):
    spec["h"]["max_len"] = 6
    spec["h"]["len_type"] = 0

    # Empty
    doc_dec = {}
    iso8583.pp(doc_dec, spec)
    captured = capsys.readouterr()
    r = captured.out.split("\n")

    assert len(r) == 2
    assert r[0] == "'bm'  Enabled Fields                      : []"
    assert r[1] == ""

    # Add header
    doc_dec = {}
    iso8583.add_field(doc_dec, "h", "header")
    iso8583.pp(doc_dec, spec)
    captured = capsys.readouterr()
    r = captured.out.split("\n")

    assert r[0] == "'bm'  Enabled Fields                      : []"
    assert r[1] == "'h'   Message Header                      : [header]"
    assert r[2] == ""
    assert len(r) == 3

    # Add header, type
    doc_dec = {}
    iso8583.add_field(doc_dec, "h", "header")
    iso8583.add_field(doc_dec, "t", "0200")
    iso8583.pp(doc_dec, spec)
    captured = capsys.readouterr()
    r = captured.out.split("\n")

    assert r[0] == "'bm'  Enabled Fields                      : []"
    assert r[1] == "'h'   Message Header                      : [header]"
    assert r[2] == "'t'   Message Type                        : [0200]"
    assert r[3] == ""
    assert len(r) == 4

    # Add header, type, field 2
    doc_dec = {}
    iso8583.add_field(doc_dec, "h", "header")
    iso8583.add_field(doc_dec, "t", "0200")
    iso8583.add_field(doc_dec, "2", "12345678")
    iso8583.pp(doc_dec, spec)
    captured = capsys.readouterr()
    r = captured.out.split("\n")

    assert r[0] == "'bm'  Enabled Fields                      : [2]"
    assert r[1] == "'h'   Message Header                      : [header]"
    assert r[2] == "'t'   Message Type                        : [0200]"
    assert r[3] == "'2'   Primary Account Number (PAN)        : 08 [12345678]"
    assert r[4] == ""
    assert len(r) == 5

    # Add header, type, field 123 + encode
    doc_dec = {}
    iso8583.add_field(doc_dec, "h", "header")
    iso8583.add_field(doc_dec, "t", "0200")
    iso8583.add_field(doc_dec, "123", "123")
    iso8583.encode(doc_dec, spec)
    iso8583.pp(doc_dec, spec)
    captured = capsys.readouterr()
    r = captured.out.split("\n")

    assert r[0] == "'bm'  Enabled Fields                      : [1, 123]"
    assert r[1] == "'h'   Message Header                      : [header]"
    assert r[2] == "'t'   Message Type                        : [0200]"
    assert r[3] == "'p'   Bitmap, Primary                     : [8000000000000000]"
    assert r[4] == "'1'   Bitmap, Secondary                   : [0000000000000020]"
    assert r[5] == "'123' Reserved for Private Use            : 003 [123]"
    assert r[6] == ""
    assert len(r) == 7
Esempio n. 6
0
def test_pp_variable_header(capsys):
    spec["h"]["max_len"] = 6
    spec["h"]["len_type"] = 2
    doc_dec = {}
    iso8583.add_field(doc_dec, "h", "header")
    iso8583.add_field(doc_dec, "t", "0200")
    iso8583.add_field(doc_dec, "2", "12345678")
    iso8583.add_field(doc_dec, "44", "123")
    iso8583.add_field(doc_dec, "123", "123")
    iso8583.encode(doc_dec, spec)
    iso8583.pp(doc_dec, spec)

    captured = capsys.readouterr()

    r = captured.out.split("\n")

    assert r[0] == "'bm'  Enabled Fields                      : [1, 2, 44, 123]"
    assert r[1] == "'h'   Message Header                      : 06 [header]"
    assert r[2] == "'t'   Message Type                        : [0200]"
    assert r[3] == "'p'   Bitmap, Primary                     : [C000000000100000]"
    assert r[4] == "'1'   Bitmap, Secondary                   : [0000000000000020]"
    assert r[5] == "'2'   Primary Account Number (PAN)        : 08 [12345678]"
    assert r[6] == "'44'  Additional Response Data            : 03 [123]"
    assert r[7] == "'123' Reserved for Private Use            : 003 [123]"
    assert r[8] == ""
    assert len(r) == 9

    iso8583.add_field(doc_dec, "h", "")
    iso8583.encode(doc_dec, spec)
    iso8583.pp(doc_dec, spec)

    captured = capsys.readouterr()

    r = captured.out.split("\n")

    assert r[0] == "'bm'  Enabled Fields                      : [1, 2, 44, 123]"
    assert r[1] == "'h'   Message Header                      : 00 []"
    assert r[2] == "'t'   Message Type                        : [0200]"
    assert r[3] == "'p'   Bitmap, Primary                     : [C000000000100000]"
    assert r[4] == "'1'   Bitmap, Secondary                   : [0000000000000020]"
    assert r[5] == "'2'   Primary Account Number (PAN)        : 08 [12345678]"
    assert r[6] == "'44'  Additional Response Data            : 03 [123]"
    assert r[7] == "'123' Reserved for Private Use            : 003 [123]"
    assert r[8] == ""
    assert len(r) == 9