mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Add some tests for bank CSV import
This commit is contained in:
0
src/tests/plugins/banktransfer/__init__.py
Normal file
0
src/tests/plugins/banktransfer/__init__.py
Normal file
22
src/tests/plugins/banktransfer/csvimport_data_de_bbbank.csv
Normal file
22
src/tests/plugins/banktransfer/csvimport_data_de_bbbank.csv
Normal file
@@ -0,0 +1,22 @@
|
||||
"BBBank eG"
|
||||
|
||||
"Umsatzanzeige"
|
||||
|
||||
"BLZ:";"2229428475";;"Datum:";"12.04.2015"
|
||||
"Konto:";"4369871042";;"Uhrzeit:";"18:50:28"
|
||||
"Abfrage von:";"Max Mustermann";;"Kontoinhaber:";"Max Mustermann"
|
||||
|
||||
"Zeitraum:";"1 Woche";"von:";;"bis:";
|
||||
"Betrag in EUR:";;"von:";" ";"bis:";" "
|
||||
"Sortiert nach:";"Buchungstag";"absteigend"
|
||||
|
||||
"Buchungstag";"Valuta";"Auftraggeber/Zahlungsempf<70>nger";"Empf<70>nger/Zahlungspflichtiger";"Konto-Nr.";"BLZ";"Vorgang/Verwendungszweck";"W<>hrung";"Umsatz";" "
|
||||
"10.04.2015";"10.04.2015";"Mustermann, Max";"Einzug ";;;"LASTSCHRIFT
|
||||
Einzug Nutzungsgebuehren IB
|
||||
AN: DE76574670095813552253";"EUR";"42,23";"S"
|
||||
"08.04.2015";"08.04.2015";"Mustermann, Max";"Kunde, Karl";;;"GUTSCHRIFT
|
||||
Ticket 2015XAZTY IBAN: DE83
|
||||
839857672994615084";"EUR";"42,23";"H"
|
||||
|
||||
"07.04.2015";;;;;;"EUR";"Anfangssaldo";"1.337,00";"H"
|
||||
"10.04.2015";;;;;;"EUR";"Endsaldo";"1.337,00";"H"
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 6.
|
4
src/tests/plugins/banktransfer/csvimport_data_de_dab.csv
Normal file
4
src/tests/plugins/banktransfer/csvimport_data_de_dab.csv
Normal file
@@ -0,0 +1,4 @@
|
||||
;
|
||||
Buchungstag;Valuta;Buchungstext;Auftraggeber / Empfänger;Verwendungszweck;Betrag in EUR;
|
||||
09.04.2015;09.04.2015;SEPA-Überweisung;Karl Kunde;Bestellung 2015ABCDE;23,00;
|
||||
09.04.2015;09.04.2015;SEPA-Überweisung;Karla Kundin;Bestellung 2015FGHIJ;42,00;
|
||||
|
3
src/tests/plugins/banktransfer/csvimport_data_de_gls.csv
Normal file
3
src/tests/plugins/banktransfer/csvimport_data_de_gls.csv
Normal file
@@ -0,0 +1,3 @@
|
||||
Kontonummer;Buchungstag;Wertstellung;Auftraggeber/Empf<70>nger;Buchungstext;VWZ1;VWZ2;VWZ3;VWZ4;VWZ5;VWZ6;VWZ7;VWZ8;VWZ9;VWZ10;VWZ11;VWZ12;VWZ13;VWZ14;Betrag;Kontostand;W<>hrung
|
||||
123456789;09.04.2015;09.04.2015;"Lars Lieferant";"OnlBanking-Euro-<2D>berweisung";BIC:THISINOBIC;IBAN:DE59433524647958971194;Datum: 09.04.15 Zeit: 10:47;KD 1234567 TAN 123456;Rechnung Nr. 123;456;;;;;;;;;-42,00;1.337,00;EUR
|
||||
123456789;08.04.2015;08.04.2015;Karl Kunde;"SEPA-<2D>berweisung";Ticket-Bestellung;Bestellnummer 2015ABC;DEV;;;;;;;;;;;;12,00;1.325,00;EUR
|
||||
|
@@ -0,0 +1,3 @@
|
||||
"Auftragskonto";"Buchungstag";"Valutadatum";"Buchungstext";"Verwendungszweck";"Beg<65>nstigter/Zahlungspflichtiger";"Kontonummer";"BLZ";"Betrag";"W<>hrung";"Info"
|
||||
"123456";"09.03";"09.03.15";"ONLINE-UEBERWEISUNG";"SVWZ+Begleichung Rechnung 1234";"Max Mustermann";"DE13495179316396679327";"THISISNOBIC";"-23,42";"EUR";"Umsatz gebucht"
|
||||
"123456";"03.03";"03.03.15";"GUTSCHRIFT";"EREF+123456789 Ticket-Bestellung 2015XALSK";"Karl Kunde";"DE89701226010601035858";"THISISNOBIC";"42,32";"EUR";"Umsatz gebucht"
|
||||
|
123
src/tests/plugins/banktransfer/test_csvimport.py
Normal file
123
src/tests/plugins/banktransfer/test_csvimport.py
Normal file
@@ -0,0 +1,123 @@
|
||||
import os.path
|
||||
from django.test import TestCase
|
||||
|
||||
# Do NOT use relative imports here
|
||||
from pretix.plugins.banktransfer import csvimport
|
||||
|
||||
# These tests need data files. Don't worry, they are fully anonymized,
|
||||
# all IBANs are random/fake.
|
||||
DATA_DIR = os.path.dirname(__file__)
|
||||
|
||||
|
||||
class CsvImportTest(TestCase):
|
||||
|
||||
def _test_from_sample_file(self, filename, expected, hint, expected_parsed):
|
||||
with open(os.path.join(DATA_DIR, filename), 'rb') as f:
|
||||
data = csvimport.get_rows_from_file(f)
|
||||
self.assertEqual(data, expected)
|
||||
parsed = csvimport.parse(data, hint)
|
||||
self.assertEqual(parsed, expected_parsed)
|
||||
|
||||
def test_sample_file_bbbank(self):
|
||||
expected = [
|
||||
['Buchungstag', 'Valuta', 'Auftraggeber/Zahlungsempfänger', 'Empfänger/Zahlungspflichtiger',
|
||||
'Konto-Nr.', 'BLZ', 'Vorgang/Verwendungszweck', 'Währung', 'Umsatz', ' '],
|
||||
['10.04.2015', '10.04.2015', 'Mustermann, Max', 'Einzug ', '', '',
|
||||
'LASTSCHRIFT\nEinzug Nutzungsgebuehren IB\nAN: DE76574670095813552253',
|
||||
'EUR', '42,23', 'S'],
|
||||
['08.04.2015', '08.04.2015', 'Mustermann, Max', 'Kunde, Karl', '', '',
|
||||
'GUTSCHRIFT\nTicket 2015XAZTY IBAN: DE83\n839857672994615084', 'EUR', '42,23', 'H'],
|
||||
[],
|
||||
['07.04.2015', '', '', '', '', '', 'EUR', 'Anfangssaldo', '1.337,00', 'H'],
|
||||
['10.04.2015', '', '', '', '', '', 'EUR', 'Endsaldo', '1.337,00', 'H']
|
||||
]
|
||||
hint = {
|
||||
'payer': [3],
|
||||
'reference': [6],
|
||||
'date': 1,
|
||||
'amount': 8,
|
||||
'cols': 10,
|
||||
}
|
||||
expected_parsed = [
|
||||
{'date': '10.04.2015', 'reference': 'LASTSCHRIFT\nEinzug Nutzungsgebuehren IB\nAN: DE76574670095813552253',
|
||||
'payer': 'Einzug', 'amount': '42,23'},
|
||||
{'date': '08.04.2015', 'reference': 'GUTSCHRIFT\nTicket 2015XAZTY IBAN: DE83\n839857672994615084',
|
||||
'payer': 'Kunde, Karl', 'amount': '42,23'},
|
||||
]
|
||||
filename = 'csvimport_data_de_bbbank.csv'
|
||||
self._test_from_sample_file(filename, expected, hint, expected_parsed)
|
||||
|
||||
def test_sample_file_sparkasse(self):
|
||||
expected = [
|
||||
['Auftragskonto', 'Buchungstag', 'Valutadatum', 'Buchungstext', 'Verwendungszweck',
|
||||
'Begünstigter/Zahlungspflichtiger', 'Kontonummer', 'BLZ', 'Betrag', 'Währung', 'Info'],
|
||||
['123456', '09.03', '09.03.15', 'ONLINE-UEBERWEISUNG', 'SVWZ+Begleichung Rechnung 1234',
|
||||
'Max Mustermann', 'DE13495179316396679327', 'THISISNOBIC', '-23,42', 'EUR', 'Umsatz gebucht'],
|
||||
['123456', '03.03', '03.03.15', 'GUTSCHRIFT', 'EREF+123456789 Ticket-Bestellung 2015XALSK', 'Karl Kunde',
|
||||
'DE89701226010601035858', 'THISISNOBIC', '42,32', 'EUR', 'Umsatz gebucht']
|
||||
]
|
||||
hint = {
|
||||
'payer': [5, 6, 7],
|
||||
'reference': [4],
|
||||
'date': 2,
|
||||
'amount': 8,
|
||||
'cols': 11,
|
||||
}
|
||||
expected_parsed = [
|
||||
{'date': '09.03.15', 'reference': 'SVWZ+Begleichung Rechnung 1234',
|
||||
'payer': 'Max Mustermann\nDE13495179316396679327\nTHISISNOBIC', 'amount': '-23,42'},
|
||||
{'date': '03.03.15', 'reference': 'EREF+123456789 Ticket-Bestellung 2015XALSK',
|
||||
'payer': 'Karl Kunde\nDE89701226010601035858\nTHISISNOBIC', 'amount': '42,32'}
|
||||
]
|
||||
filename = 'csvimport_data_de_sparkassernn.csv'
|
||||
self._test_from_sample_file(filename, expected, hint, expected_parsed)
|
||||
|
||||
def test_sample_file_gls(self):
|
||||
expected = [
|
||||
['Kontonummer', 'Buchungstag', 'Wertstellung', 'Auftraggeber/Empfänger', 'Buchungstext', 'VWZ1', 'VWZ2',
|
||||
'VWZ3', 'VWZ4', 'VWZ5', 'VWZ6', 'VWZ7', 'VWZ8', 'VWZ9', 'VWZ10', 'VWZ11', 'VWZ12', 'VWZ13', 'VWZ14',
|
||||
'Betrag', 'Kontostand', 'Währung'],
|
||||
['123456789', '09.04.2015', '09.04.2015', 'Lars Lieferant', 'OnlBanking-Euro-Überweisung',
|
||||
'BIC:THISINOBIC', 'IBAN:DE59433524647958971194', 'Datum: 09.04.15 Zeit: 10:47', 'KD 1234567 TAN 123456',
|
||||
'Rechnung Nr. 123', '456', '', '', '', '', '', '', '', '', '-42,00', '1.337,00', 'EUR'],
|
||||
['123456789', '08.04.2015', '08.04.2015', 'Karl Kunde', 'SEPA-Überweisung', 'Ticket-Bestellung',
|
||||
'Bestellnummer 2015ABC', 'DEV', '', '', '', '', '', '', '', '', '', '', '', '12,00', '1.325,00', 'EUR']
|
||||
]
|
||||
hint = {
|
||||
'payer': [3],
|
||||
'reference': [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
|
||||
'date': 2,
|
||||
'amount': 19,
|
||||
'cols': 22,
|
||||
}
|
||||
expected_parsed = [
|
||||
{'date': '09.04.2015',
|
||||
'reference': 'BIC:THISINOBIC\nIBAN:DE59433524647958971194\nDatum: 09.04.15 Zeit: 10:47\nKD 1234567 TAN '
|
||||
'123456\nRechnung Nr. 123\n456',
|
||||
'amount': '-42,00', 'payer': 'Lars Lieferant'},
|
||||
{'date': '08.04.2015', 'reference': 'Ticket-Bestellung\nBestellnummer 2015ABC\nDEV',
|
||||
'amount': '12,00', 'payer': 'Karl Kunde'}
|
||||
]
|
||||
filename = "csvimport_data_de_gls.csv"
|
||||
self._test_from_sample_file(filename, expected, hint, expected_parsed)
|
||||
|
||||
def test_sample_file_dab(self):
|
||||
expected = [
|
||||
['Buchungstag', 'Valuta', 'Buchungstext', 'Auftraggeber / Empfänger', 'Verwendungszweck', 'Betrag in EUR',
|
||||
''],
|
||||
['09.04.2015', '09.04.2015', 'SEPA-Überweisung', 'Karl Kunde', 'Bestellung 2015ABCDE', '23,00', ''],
|
||||
['09.04.2015', '09.04.2015', 'SEPA-Überweisung', 'Karla Kundin', 'Bestellung 2015FGHIJ', '42,00', '']
|
||||
]
|
||||
hint = {
|
||||
'payer': [3],
|
||||
'reference': [4],
|
||||
'date': 1,
|
||||
'amount': 5,
|
||||
'cols': 7,
|
||||
}
|
||||
expected_parsed = [
|
||||
{'payer': 'Karl Kunde', 'reference': 'Bestellung 2015ABCDE', 'amount': '23,00', 'date': '09.04.2015'},
|
||||
{'payer': 'Karla Kundin', 'reference': 'Bestellung 2015FGHIJ', 'amount': '42,00', 'date': '09.04.2015'}
|
||||
]
|
||||
filename = "csvimport_data_de_dab.csv"
|
||||
self._test_from_sample_file(filename, expected, hint, expected_parsed)
|
||||
Reference in New Issue
Block a user