mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Added tests for the mt940 import
This commit is contained in:
229
src/tests/plugins/banktransfer/test_mt940.py
Normal file
229
src/tests/plugins/banktransfer/test_mt940.py
Normal file
@@ -0,0 +1,229 @@
|
||||
import io
|
||||
import pprint
|
||||
|
||||
from pretix.plugins.banktransfer.mt940import import parse
|
||||
|
||||
TEST_DATA = [
|
||||
# Source: https://www.ksk-koeln.de/Produkte/girokonten/Elektronisches%20Bezahlen/datenstruktur-mt940-swift.pdfx
|
||||
"""
|
||||
:20:951110
|
||||
:25:45050050/76198810
|
||||
:28:27/01
|
||||
:60F:C951016DEM84349,74
|
||||
:61:951017D6800,NCHK16703074
|
||||
:86:999PN5477SCHECK-NR. 0000016703074
|
||||
:61:951017D620,3NSTON
|
||||
:86:999PN0911DAUERAUFTR.NR. 14
|
||||
:61:951017C18500,NCLRN
|
||||
:86:999PN2406SCHECK
|
||||
:61:951015D14220,NBOEN
|
||||
:86:999PN0920WECHSEL
|
||||
:61:951017D1507,NTRFN
|
||||
:86:999PN0920SCHNELLUEB
|
||||
:61:951024C4200,NMSCN
|
||||
:86:999PN2506AUSSENH. NR. 1
|
||||
:61:951017D19900,NTRFN
|
||||
:86:999PN0907UEBERTRAG
|
||||
:61:951017D400,NTRFN
|
||||
:86:999PN0891BTX
|
||||
:61:951018C3656,74NMSCN
|
||||
:86:999PN0850EINZAHLG.N
|
||||
:61:951019C23040,NMSCN
|
||||
:86:999PN0812LT.ANLAGE
|
||||
:61:951027D5862,14NCHKN
|
||||
:86:999PN5329AUSLSCHECK
|
||||
:62F:C951017DEM84437,04
|
||||
""",
|
||||
# Source: https://www.bayernlb.de/internet/media/de/internet_4/de_1/downloads_5
|
||||
# /0800_financial_office_it_operations_5/4200_1/sepa_5/SEPAMT940_942.pdf
|
||||
# Slightly modified in the last row since there is no 31th of November...
|
||||
"""
|
||||
:20:1234567
|
||||
:21:9876543210
|
||||
:25:10020030/1234567
|
||||
:28C:5/1
|
||||
:60F:C021101EUR2187,95
|
||||
:61:0211011102DR800,NSTONONREF//55555
|
||||
:86:008?00DAUERAUFTRAG?100599?20Miete Novem
|
||||
ber?3010020030?31234567
|
||||
?32MUELLER?34339
|
||||
:61:0211021102CR3000,NTRFNONREF//55555
|
||||
:86:051?00UEBERWEISUNG?100599?20Gehalt Oktob
|
||||
er
|
||||
?21Firma Mustermann GmbH?3050060400?31084756
|
||||
4700?32MUELLER?34339
|
||||
:62F:C021130EUR4387,95
|
||||
""",
|
||||
# http://wiki.nuclos.de/display/NW/7+MT940%3A+Beispiele
|
||||
"""
|
||||
:20:STARTUMSE
|
||||
:25:10010010/1111111111
|
||||
:28C:00001/001
|
||||
:60F:C120131EUR8200,90
|
||||
:61:1202020102DR400,62N033NONREF
|
||||
:86:077?00Überweisung beleglos?109310?20RECHNUNGSNR. 1210815 ?21K
|
||||
UNDENNR. 01234 ?22DATUM 01.02.2012?3020020020?2222222222?32MARTHA
|
||||
MUELLER?34999
|
||||
:61:1202030103DR1210,00N012NONREF
|
||||
:86:008?00Dauerauftrag?107000?20MIETE GOETHESTR. 12?3030030030?31
|
||||
3333333333?32ABC IMMOBILIEN GMBH?34997
|
||||
:61:1202030103CR30,00N062NONREF
|
||||
:86:051?00Überweisungseingang?109265?20RECHNUNG 20120188?21STEFAN
|
||||
SCHMIDT?23KUNDENR. 4711,?3040040040?4444444444?32STEFAN SCHMIDT
|
||||
:61:1202030103CR89,97N060NONREF//000000000001
|
||||
:86:052?00Überweisungseingang?109265?20RECHNUNG 20120165?21PETER
|
||||
PETERSEN?3050050050?315555555555?32PETER PETERSEN
|
||||
:62F:C120203EUR6710,50
|
||||
""",
|
||||
# http://www.national-bank.de/fileadmin/user_upload/nationalbank/Service_Center/Electronic_Banking_Center
|
||||
# /Downloads/Handbuecher_und_Bedingungen/swift_mt940.pdf
|
||||
"""
|
||||
:20:STARTUMS
|
||||
:25:1222333444
|
||||
:28:1/1
|
||||
:NS:22Test GmbH
|
||||
23Testkonto
|
||||
240,800
|
||||
25010102311202
|
||||
3037010000
|
||||
3190000022
|
||||
:60F:C020315DEM0,00
|
||||
:61:0203170320CM5000,00S05168790452
|
||||
:NS:01Verwendungszweck 1
|
||||
02Verwendungszweck 2
|
||||
15Empfänger
|
||||
17Buchungstext
|
||||
1812345
|
||||
191000
|
||||
204711
|
||||
:61:020322CM20000,00NCHG
|
||||
:61:020322CM20000,00S051
|
||||
:61:020322CM20000,00S051
|
||||
:61:020322CM20000,00S051
|
||||
:61:020322CM20000,00S051
|
||||
:62M:C020315105000,00
|
||||
:20:STARTUMS
|
||||
:25:1222333444
|
||||
:28:1/1
|
||||
:NS:223037010000
|
||||
:60M:C020315DEM105000,00
|
||||
:61:020322CM20000,00S051
|
||||
:61:020322CM20000,00S051
|
||||
:62F:C020315145000,00
|
||||
:20:STARTUMS
|
||||
:25:3346780111
|
||||
:28:2/1
|
||||
:NS:22Meyer + Schneider
|
||||
23Testkonto
|
||||
3037010000
|
||||
3187132101
|
||||
:60F:C020324DEM145000,00
|
||||
:61:020324DM50000,00S051
|
||||
:NS:01bekannt
|
||||
1812345
|
||||
:62F:C02032495000,00
|
||||
"""
|
||||
]
|
||||
|
||||
EXPECTED = [
|
||||
[
|
||||
{'amount': '-6800.00',
|
||||
'date': '2095-10-17',
|
||||
'reference': '999PN5477SCHECK-NR. 0000016703074\n16703074'},
|
||||
{'amount': '-620.30',
|
||||
'date': '2095-10-17',
|
||||
'reference': '999PN0911DAUERAUFTR.NR. 14\nN'},
|
||||
{'amount': '18500.00',
|
||||
'date': '2095-10-17',
|
||||
'reference': '999PN2406SCHECK\nN'},
|
||||
{'amount': '-14220.00',
|
||||
'date': '2095-10-15',
|
||||
'reference': '999PN0920WECHSEL\nN'},
|
||||
{'amount': '-1507.00',
|
||||
'date': '2095-10-17',
|
||||
'reference': '999PN0920SCHNELLUEB\nN'},
|
||||
{'amount': '4200.00',
|
||||
'date': '2095-10-24',
|
||||
'reference': '999PN2506AUSSENH. NR. 1\nN'},
|
||||
{'amount': '-19900.00',
|
||||
'date': '2095-10-17',
|
||||
'reference': '999PN0907UEBERTRAG\nN'},
|
||||
{'amount': '-400.00',
|
||||
'date': '2095-10-17',
|
||||
'reference': '999PN0891BTX\nN'},
|
||||
{'amount': '3656.74',
|
||||
'date': '2095-10-18',
|
||||
'reference': '999PN0850EINZAHLG.N\nN'},
|
||||
{'amount': '23040.00',
|
||||
'date': '2095-10-19',
|
||||
'reference': '999PN0812LT.ANLAGE\nN'},
|
||||
{'amount': '-5862.14',
|
||||
'date': '2095-10-27',
|
||||
'reference': '999PN5329AUSLSCHECK\nN'}
|
||||
],
|
||||
[
|
||||
{'amount': '-800.00',
|
||||
'date': '2002-11-01',
|
||||
'reference': '008?00DAUERAUFTRAG?100599?20Miete Novem\n'
|
||||
'ber?3010020030?31234567\n'
|
||||
'?32MUELLER?34339\n'
|
||||
'NONREF//55555'},
|
||||
{'amount': '3000.00',
|
||||
'date': '2002-11-02',
|
||||
'reference': '051?00UEBERWEISUNG?100599?20Gehalt Oktob\n'
|
||||
'er\n'
|
||||
'?21Firma Mustermann GmbH?3050060400?31084756\n'
|
||||
'4700?32MUELLER?34339\n'
|
||||
'NONREF//55555'}
|
||||
],
|
||||
[
|
||||
{'amount': '-400.62',
|
||||
'date': '2012-02-02',
|
||||
'reference': '077?00Überweisung beleglos?109310?20RECHNUNGSNR. '
|
||||
'1210815 ?21K\n'
|
||||
'UNDENNR. 01234 ?22DATUM '
|
||||
'01.02.2012?3020020020?2222222222?32MARTHA\n'
|
||||
'MUELLER?34999\n'
|
||||
'NONREF'},
|
||||
{'amount': '-1210.00',
|
||||
'date': '2012-02-03',
|
||||
'reference': '008?00Dauerauftrag?107000?20MIETE GOETHESTR. '
|
||||
'12?3030030030?31\n'
|
||||
'3333333333?32ABC IMMOBILIEN GMBH?34997\n'
|
||||
'NONREF'},
|
||||
{'amount': '30.00',
|
||||
'date': '2012-02-03',
|
||||
'reference': '051?00Überweisungseingang?109265?20RECHNUNG '
|
||||
'20120188?21STEFAN\n'
|
||||
' SCHMIDT?23KUNDENR. '
|
||||
'4711,?3040040040?4444444444?32STEFAN SCHMIDT\n'
|
||||
'NONREF'},
|
||||
{'amount': '89.97',
|
||||
'date': '2012-02-03',
|
||||
'reference': '052?00Überweisungseingang?109265?20RECHNUNG '
|
||||
'20120165?21PETER\n'
|
||||
' PETERSEN?3050050050?315555555555?32PETER PETERSEN\n'
|
||||
'NONREF//00000000\n'
|
||||
'0001'}
|
||||
],
|
||||
[
|
||||
{'amount': '5000.00', 'date': '2002-03-17', 'reference': '68790452'},
|
||||
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
|
||||
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
|
||||
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
|
||||
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
|
||||
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
|
||||
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
|
||||
{'amount': '20000.00', 'date': '2002-03-22', 'reference': ''},
|
||||
{'amount': '-50000.00', 'date': '2002-03-24', 'reference': ''}
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
def test_parse():
|
||||
for i, d in enumerate(TEST_DATA):
|
||||
parsed = parse(io.BytesIO(d.encode('utf-8')))
|
||||
pp = pprint.PrettyPrinter(indent=4)
|
||||
pp.pprint(parsed)
|
||||
assert parsed == EXPECTED[i]
|
||||
print("done")
|
||||
Reference in New Issue
Block a user