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()
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
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
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"
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
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