From: Michael Wagner Date: Thu, 19 Mar 2026 22:16:50 +0000 (+0100) Subject: Test hinzugefügt X-Git-Tag: eigenheimer-util_0.1-0 X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/SVBaL.git/commitdiff_plain/ac976f055207bbbf89e83b8efa0fa20455f52dc3 Test hinzugefügt --- diff --git a/Test/FitnessePages/DjangoTest/content.txt b/Test/FitnessePages/DjangoTest/content.txt index 5897464..0e8a75e 100644 --- a/Test/FitnessePages/DjangoTest/content.txt +++ b/Test/FitnessePages/DjangoTest/content.txt @@ -1,6 +1,4 @@ !|test.util.CallScript| -|call script|!-rm -r ~/test |true-!| -|call script|mkdir -p ~/test/python/eh_util/eh_app| -|call script|cp ../python/eh_util/eh_app/tests.py ~/test/python/eh_util/eh_app/| -|call script|cp ../python/eh_util/manage.py ~/test/python/eh_util/| -|call script|cd ~/test/python/eh_util/; ./manage.py test| +|call script|!-rm -r ~/test |true -!| +|call script|cp -a /opt/mysite ~/test/| +|call script|cd ~/test/; ./manage.py test eh_app| diff --git a/Test/FitnessePages/PortalTest/.dummy b/Test/FitnessePages/PortalTest/.dummy new file mode 100644 index 0000000..e69de29 diff --git a/Test/FitnessePages/PortalTest/content.txt b/Test/FitnessePages/PortalTest/content.txt new file mode 100644 index 0000000..1f78a80 --- /dev/null +++ b/Test/FitnessePages/PortalTest/content.txt @@ -0,0 +1,4 @@ +!|test.util.CallScript| +|call script|wget -O login.html http://localhost/eh-app/| +|call script|grep "/mdjangostat/admin/css/base.css" login.html| +|call script|grep "Siedlerverein-Verwaltung by WagnerTech UG" login.html| diff --git a/Test/FitnessePages/PortalTest/properties.xml b/Test/FitnessePages/PortalTest/properties.xml new file mode 100644 index 0000000..e13fdf4 --- /dev/null +++ b/Test/FitnessePages/PortalTest/properties.xml @@ -0,0 +1,12 @@ + + + true + true + true + true + true + true + true + true + true + diff --git a/Test/FitnessePages/properties.xml b/Test/FitnessePages/properties.xml index 72aa2b6..3096ff6 100644 --- a/Test/FitnessePages/properties.xml +++ b/Test/FitnessePages/properties.xml @@ -1,11 +1,14 @@ - true - true - true - true - true - true - true - true + + + + + + + + + + + diff --git a/python/eh_app/tests.py b/python/eh_app/tests.py index 8fac548..5f6affd 100644 --- a/python/eh_app/tests.py +++ b/python/eh_app/tests.py @@ -16,7 +16,7 @@ class TestConfig(TestCase): val = cf.getConfig("bla") assert (val == "bar") - +''' class TestQModel(TestCase): def setUp(self): cf = config.getInstance("svbal") @@ -33,4 +33,4 @@ class TestQModel(TestCase): if m.nachname == "Wagner": gst = m.VersicherteGrundstucke() assert (len(gst) == 3) - \ No newline at end of file +''' \ No newline at end of file diff --git a/python/sv-merger/sv-merger.py b/python/sv-merger/sv-merger.py new file mode 100755 index 0000000..aa48d57 --- /dev/null +++ b/python/sv-merger/sv-merger.py @@ -0,0 +1,115 @@ +#!/usr/bin/python3 +''' +Created on 10.01.2024 + +@author: sparky2021 +''' + +import sys + +if __name__ == '__main__': + pass + +def rd_opt_qval(s): + if s[0] == '"': + s = s[1:-1] + return s + +numArgs = len(sys.argv) +if (numArgs != 4): + raise RuntimeError("usage: sv-merger EXPORT DELTA FIELD") + + +dh_export = open(sys.argv[1]) +dh_delta = open(sys.argv[2]) +dh_import = open("import.csv", "w") + +# Lese die Kopfzeile aus EXPORT +line = dh_export.readline().rstrip() +print(line, file=dh_import) +export_header = line.split(";") + +sv_pn_spalte = -1 +sv_such_spalte = -1 + +i = 0 +for kopf in export_header: + if kopf[0] == '"': + kopf = kopf[1:-1] + if kopf == 'Freifeldwert_1': + sv_pn_spalte = i + if kopf == sys.argv[3]: + sv_such_spalte = i + i += 1 + +if sv_pn_spalte == -1: + raise RuntimeError("S-Verein-Export enthält keine Partnernummer") +if sv_such_spalte == -1: + raise RuntimeError("S-Verein-Export enthält nicht das gewünschte Datenfeld "+sys.argv[3]) + +line = dh_delta.readline().rstrip() +delta_header = line.split(",") + +delta_pn_sp = -1 +delta_such_sp = -1 + +i = 0 +for kopf in delta_header: + print (kopf) + if rd_opt_qval(kopf) == "Partnernummer": + delta_pn_sp = i + if kopf == sys.argv[3]: + delta_such_sp = i + i += 1 + +if delta_pn_sp == -1: + raise RuntimeError("Delta-Datei enthält keine Partnernummer") +if delta_such_sp == -1: + raise RuntimeError("Delta-Datei enthält nicht das gewünschte Datenfeld") + +delta = {} +for line in dh_delta: + if len(line.rstrip()): + # not a empty line + data = line.split(";") + if len(data[delta_pn_sp]) == 0: + print("Diese Zeile hat keine Migliedsnummer: ", line) + else: + delta[int(data[delta_pn_sp])] = data[delta_such_sp] + +for line in dh_export: + data = line.rstrip().split(";") + pn = data[sv_pn_spalte] + if len(pn) == 0: + print("Diese Zeile (export) hat keine Migliedsnummer: ", line) + else: + if pn[0] == '"': + pn = pn[1:-1] + pn = int(pn) + if pn in delta: + if len(delta[pn]): + if data[sv_such_spalte] != delta[pn]: + data[sv_such_spalte] = delta[pn] + print(";".join(data), file=dh_import) + else: + print(f"{pn} fehlt in delta-Datei") + +dh_export.close() +dh_delta.close() +dh_import.close() + +''' +Argumente: + +EXPORT: Export-Datei aus S-Verein + +DELTA: csv-Daten, die eingearbeitet werden sollen + +FIELD: Feld, das eingearbeitet werden soll, wenn + - Das Quellfeld nicht leer ist + - Sich der Wert von der EXPORT-Datei unterscheidet + +Die Synchronisation der Daten erfolgt anhand der Partnernummer. + +Das Ergebnis wird stets in die Datei import.csv geschrieben. +'''