Ejemplo n.º 1
0
    def test__populate_by_parsing(self):

        mt103 = MT103(MESSAGE1)

        self.assertTrue(mt103)
        self.assertEqual(mt103.basic_header, "F01ASDFJK20AXXX0987654321")
        self.assertEqual(mt103.application_header, "I103ASDFJK22XXXXN")
        self.assertFalse(mt103.user_header)
        self.assertEqual(mt103.trailer, None)

        self.assertEqual(str(mt103.text), MESSAGE1[54:-3])

        mt103 = MT103(MESSAGE2)
        self.assertTrue(mt103)
        self.assertEqual(mt103.basic_header, "F01QWERTY22AXXX1234567890")
        self.assertEqual(mt103.application_header, "I103QWERTY33XXXXA7")
        self.assertEqual(str(mt103.user_header), "{108:MT103}")
        self.assertEqual(mt103.text.raw, MESSAGE2[70:-3])
        self.assertEqual(mt103.trailer, None)

        mt103 = MT103(MESSAGE3)
        self.assertTrue(mt103)
        self.assertEqual(mt103.basic_header, "F01QWERTY22AXXX1234567890")
        self.assertEqual(mt103.application_header, "I103QWERTY33XXXXA7")
        self.assertEqual(
            str(mt103.user_header),
            "{113:SEPA}{111:001}{121:d2d62e74-4f7d-45dc-a230-85fa259e1694}")
        self.assertEqual(mt103.text.raw, MESSAGE3[120:-3])
        self.assertEqual(mt103.trailer, None)
Ejemplo n.º 2
0
    def test__populate_by_parsing(self):

        mt103 = MT103(MESSAGE1)
        self.assertTrue(mt103)
        self.assertFalse(mt103.user_header)

        mt103 = MT103(MESSAGE2)
        self.assertTrue(mt103)
        self.assertTrue(mt103.user_header)
        self.assertIsNone(mt103.user_header.bank_priority_code)
        self.assertIsNone(mt103.user_header.bpc)
        self.assertEqual(mt103.user_header.message_user_reference, "MT103")
        self.assertEqual(mt103.user_header.mur, "MT103")
        self.assertIsNone(mt103.user_header.service_type_identifier)
        self.assertIsNone(mt103.user_header.sti)
        self.assertIsNone(
            mt103.user_header.unique_end_to_end_transaction_reference
        )  # NOQA: E501
        self.assertIsNone(mt103.user_header.uetr)

        mt103 = MT103(MESSAGE3)
        self.assertTrue(mt103)
        self.assertTrue(mt103.user_header)
        self.assertEqual(mt103.user_header.bank_priority_code, "SEPA")
        self.assertEqual(mt103.user_header.bpc, "SEPA")
        self.assertIsNone(mt103.user_header.message_user_reference)
        self.assertIsNone(mt103.user_header.mur)
        self.assertEqual(mt103.user_header.service_type_identifier, "001")
        self.assertEqual(mt103.user_header.sti, "001")
        self.assertEqual(
            "d2d62e74-4f7d-45dc-a230-85fa259e1694",
            mt103.user_header.unique_end_to_end_transaction_reference,
        )
        self.assertEqual("d2d62e74-4f7d-45dc-a230-85fa259e1694",
                         mt103.user_header.uetr)
Ejemplo n.º 3
0
    def test__populate_by_parsing_message4(self):

        mt103 = MT103(MESSAGE4)

        self.assertTrue(mt103)
        self.assertTrue(mt103.text)
        self.assertEqual(mt103.text.transaction_reference, "5387354")
        self.assertEqual(mt103.text.interbank_settled_currency, "USD")
        self.assertEqual(mt103.text.original_ordered_currency, "USD")
        self.assertEqual(mt103.text.bank_operation_code, "CRED")
        self.assertEqual(mt103.text.date, date(2000, 5, 26))
        self.assertEqual(mt103.text.ordering_customer,
                         "FRANZ HOLZAPFEL GMBH\nVIENNA")
        self.assertIsNone(mt103.text.regulatory_reporting)
        self.assertEqual(mt103.text.sender_to_receiver_information,
                         "/INS/CHASUS33")
        self.assertEqual(mt103.text.original_ordered_amount, "1121,50")
        self.assertEqual(
            mt103.text.beneficiary,
            "723491524\nC. KLEIN\nBLOEMENGRACHT 15\nAMSTERDAM",
        )
        self.assertIsNone(mt103.text.remittance_information)
        self.assertEqual(mt103.text.details_of_charges, "SHA")
        self.assertIsNone(mt103.text.sender_correspondent)
        self.assertIsNone(mt103.text.intermediary)
        self.assertEqual(mt103.text.receiver_correspondent, None)
        self.assertEqual(mt103.text.interbank_settled_amount, "1101,50")
        self.assertEqual(mt103.text.ordering_institution, "BKAUATWW")
        self.assertIsNone(mt103.text.account_with_institution)
Ejemplo n.º 4
0
    def test__populate_by_parsing_message1(self):

        mt103 = MT103(MESSAGE1)

        self.assertTrue(mt103)
        self.assertTrue(mt103.text)
        self.assertEqual(mt103.text.transaction_reference, "20180101-ABCDEF")
        self.assertEqual(mt103.text.interbank_settled_currency, "CAD")
        self.assertEqual(mt103.text.original_ordered_currency, "EUR")
        self.assertEqual(mt103.text.bank_operation_code, "GHIJ")
        self.assertEqual(mt103.text.date, date(2018, 1, 17))
        self.assertEqual(
            mt103.text.ordering_customer,
            "/123456-75901 SOMEWHERE New York 999999 GR",
        )
        self.assertEqual(mt103.text.regulatory_reporting, "Test this")
        self.assertEqual(mt103.text.sender_to_receiver_information, None)
        self.assertEqual(mt103.text.original_ordered_amount, "9999,0")
        self.assertEqual(
            mt103.text.beneficiary,
            "/201001020 First Name Last Name a12345bc6d789ef01a23 Nowhere NL",
        )
        self.assertEqual(
            mt103.text.remittance_information,
            "test reference test reason payment group: 1234567-ABCDEF",
        )
        self.assertEqual(mt103.text.details_of_charges, "SHA")
        self.assertEqual(mt103.text.sender_correspondent, "/20100213012345")
        self.assertEqual(mt103.text.intermediary, None)
        self.assertEqual(mt103.text.receiver_correspondent, None)
        self.assertEqual(mt103.text.interbank_settled_amount, "5432,1")
        self.assertEqual(mt103.text.ordering_institution, None)
        self.assertEqual(mt103.text.account_with_institution, "//SC200123")
Ejemplo n.º 5
0
    def test__populate_by_parsing_message2(self):

        mt103 = MT103(MESSAGE2)
        self.assertTrue(mt103)
        self.assertEqual(mt103.basic_header, "F01QWERTY22AXXX1234567890")
        self.assertEqual(mt103.application_header, "I103QWERTY33XXXXA7")
        self.assertEqual(str(mt103.user_header), "{108:MT103}")
        self.assertEqual(mt103.text.raw, MESSAGE2[70:-3])
        self.assertEqual(mt103.trailer, None)
Ejemplo n.º 6
0
    def test__populate_by_parsing(self):

        mt103 = MT103(MESSAGE1)

        self.assertTrue(mt103)
        self.assertEqual(mt103.basic_header, "F01ASDFJK20AXXX0987654321")
        self.assertEqual(mt103.application_header, "I103ASDFJK22XXXXN")
        self.assertEqual(mt103.user_header, None)
        self.assertEqual(mt103.trailer, None)

        self.assertEqual(str(mt103.text), MESSAGE1[54:-3])

        mt103 = MT103(MESSAGE2)
        self.assertTrue(mt103)
        self.assertEqual(mt103.basic_header, "F01QWERTY22AXXX1234567890")
        self.assertEqual(mt103.application_header, "I103QWERTY33XXXXA7")
        self.assertEqual(mt103.user_header, "{108:MT103}")
        self.assertEqual(mt103.text.raw, MESSAGE2[70:-3])
        self.assertEqual(mt103.trailer, None)
Ejemplo n.º 7
0
    def test__populate_by_parsing_message3(self):

        mt103 = MT103(MESSAGE3)
        self.assertTrue(mt103)
        self.assertEqual(mt103.basic_header, "F01QWERTY22AXXX1234567890")
        self.assertEqual(mt103.application_header, "I103QWERTY33XXXXA7")
        self.assertEqual(
            str(mt103.user_header),
            "{113:SEPA}{111:001}{121:d2d62e74-4f7d-45dc-a230-85fa259e1694}")
        self.assertEqual(mt103.text.raw, MESSAGE3[120:-3])
        self.assertEqual(mt103.trailer, None)
Ejemplo n.º 8
0
    def test__populate_by_parsing_message1(self):

        mt103 = MT103(MESSAGE1)

        self.assertTrue(mt103)
        self.assertEqual(mt103.basic_header, "F01ASDFJK20AXXX0987654321")
        self.assertEqual(mt103.application_header, "I103ASDFJK22XXXXN")
        self.assertFalse(mt103.user_header)
        self.assertEqual(mt103.trailer, None)

        self.assertEqual(str(mt103.text), MESSAGE1[54:-3])
Ejemplo n.º 9
0
    def test__populate_by_parsing_message4(self):

        mt103 = MT103(MESSAGE4)
        self.assertTrue(mt103)
        self.assertEqual(mt103.basic_header, "F01AAAAGRA0AXXX0057000289")
        self.assertEqual(mt103.application_header,
                         "O1030919010321BBBBGRA0AXXX00570001710103210920N")
        self.assertEqual(
            str(mt103.user_header),
            "{108:MT103 003 OF 045}{121:c8b66b47-2bd9-48fe-be90-93c2096f27d2}")
        self.assertEqual(mt103.text.raw, MESSAGE4[152:-39])
        self.assertEqual(mt103.trailer, "{MAC:75D138E4}{CHK:DE1B0D71FA96}")
Ejemplo n.º 10
0
    def test___init__(self):

        keys = (
            "basic_header",
            "application_header",
            "user_header",
            "text",
            "trailer",
        )

        with mock.patch.object(MT103, "_populate_by_parsing") as m:
            mt103 = MT103("test")
            self.assertFalse(mt103)
            self.assertEqual(m.call_count, 1)

        for key in keys:
            self.assertIsNone(getattr(mt103, key))
            self.assertEqual(mt103.raw, "test")
Ejemplo n.º 11
0
from mt103 import MT103
with open("mt_sample.txt") as f:
    s = f.read()
#print(s)
mt103 = MT103(s)
print("basic header: {}, bank op code: {}, complete message: {}".format(
    mt103.basic_header, mt103.text.bank_operation_code, mt103))

print(mt103)
writer.write(record[1:len(record)])
writer.write("\n")
file = open("BlockTrainingData.csv", "r")
# file = open("/Users/coder/Downloads/TestingData.csv", "r")
for line in file:
    print(line)
    data = line.split(",")
    if len(line) < 10:
        break
    if "score" in data[1]:
        continue

    data[3] = line[line.index("\""):len(line)]
    data[3] = data[3].replace("\"", "")

    mt103 = MT103(data[3])
    print("=============")
    print(mt103.text)
    print("======****=======")
    # my_dict = {}
    # my_dict['bank_operation_code'] = mt103.text.bank_operation_code
    # my_dict['beneficiary'] = mt103.text.beneficiary
    # my_dict['day'] = mt103.text.date.day
    # my_dict['month'] = mt103.text.date.month
    # my_dict['year'] = mt103.text.date.year
    # my_dict['details_of_charges'] = mt103.text.details_of_charges
    # my_dict['interbank_settled_amount'] = mt103.text.interbank_settled_amount
    # my_dict['interbank_settled_currency'] = mt103.text.interbank_settled_currency
    # my_dict['intermediary'] = mt103.text.intermediary
    # my_dict['ordering_customer'] = mt103.text.ordering_customer
    # my_dict['ordering_institution'] = mt103.text.ordering_institution
Ejemplo n.º 13
0
def getMTMessages(transactions):
    mt_messages = []
    for transaction in transactions:
        mt_messages.append(MT103(transaction))

    return mt_messages
Ejemplo n.º 14
0
 def test_truthyness(self):
     self.assertFalse(Text(""))
     self.assertFalse(Text("test"))
     self.assertFalse(MT103("").text)
     self.assertFalse(MT103("test").text)
     self.assertTrue(MT103(MESSAGE1).text)
 def __init__(self, message):
     self.transaction = MT103(message)
     self.appId = ["A", "F", "L"]
     self.serviceId = ["01", "03", "21"]
for value in myFields:
    record = record + "," + str(value)
# writer.writeheader()
writer.write(record[1:len(record)])
writer.write("\n")
file = open("validation_set_random.csv", "r")
# file = open("/Users/coder/Downloads/TestingData.csv", "r")
for line in file:
    print(line)
    data = line.split("|")
    if len(line) < 10:
        break
    if "score" in data[1]:
        continue

    mt103 = MT103(data[2])
    print("=============")
    print(mt103.text)
    print("======****=======")
    # my_dict = {}
    # my_dict['bank_operation_code'] = mt103.text.bank_operation_code
    # my_dict['beneficiary'] = mt103.text.beneficiary
    # my_dict['day'] = mt103.text.date.day
    # my_dict['month'] = mt103.text.date.month
    # my_dict['year'] = mt103.text.date.year
    # my_dict['details_of_charges'] = mt103.text.details_of_charges
    # my_dict['interbank_settled_amount'] = mt103.text.interbank_settled_amount
    # my_dict['interbank_settled_currency'] = mt103.text.interbank_settled_currency
    # my_dict['intermediary'] = mt103.text.intermediary
    # my_dict['ordering_customer'] = mt103.text.ordering_customer
    # my_dict['ordering_institution'] = mt103.text.ordering_institution
Ejemplo n.º 17
0
 def test___str__(self):
     self.assertEqual(str(MT103(MESSAGE1)), MESSAGE1)
     self.assertEqual(str(MT103(MESSAGE2)), MESSAGE2)
     self.assertEqual(str(MT103(MESSAGE3)), MESSAGE3)
     self.assertEqual(str(MT103(MESSAGE4)), MESSAGE4)
Ejemplo n.º 18
0
 def test_truthyness(self):
     self.assertFalse(MT103(""))
     self.assertFalse(MT103("test"))