]> wagnertech.de Git - SVBaL.git/commitdiff
Test hinzugefügt eigenheimer-util_0.1-0
authorMichael Wagner <mail@wagnertech.de>
Thu, 19 Mar 2026 22:16:50 +0000 (23:16 +0100)
committerMichael Wagner <mail@wagnertech.de>
Thu, 19 Mar 2026 22:16:50 +0000 (23:16 +0100)
Test/FitnessePages/DjangoTest/content.txt
Test/FitnessePages/PortalTest/.dummy [new file with mode: 0644]
Test/FitnessePages/PortalTest/content.txt [new file with mode: 0644]
Test/FitnessePages/PortalTest/properties.xml [new file with mode: 0644]
Test/FitnessePages/properties.xml
python/eh_app/tests.py
python/sv-merger/sv-merger.py [new file with mode: 0755]

index 589746496fd9b6334b83d29146e04ec298820839..0e8a75ed3f90c16498568146612767243d5d8530 100644 (file)
@@ -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 (file)
index 0000000..e69de29
diff --git a/Test/FitnessePages/PortalTest/content.txt b/Test/FitnessePages/PortalTest/content.txt
new file mode 100644 (file)
index 0000000..1f78a80
--- /dev/null
@@ -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 (file)
index 0000000..e13fdf4
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<properties>
+       <Edit>true</Edit>
+       <Files>true</Files>
+       <Properties>true</Properties>
+       <RecentChanges>true</RecentChanges>
+       <Refactor>true</Refactor>
+       <Search>true</Search>
+       <Test>true</Test>
+       <Versions>true</Versions>
+       <WhereUsed>true</WhereUsed>
+</properties>
index 72aa2b6a6b765c0099b15f3ec783a5d55c82acea..3096ff6ba20492a649159f111c00e4053dc85e4e 100644 (file)
@@ -1,11 +1,14 @@
 <?xml version="1.0"?>
 <properties>
-       <Edit>true</Edit>
-       <Files>true</Files>
-       <Properties>true</Properties>
-       <RecentChanges>true</RecentChanges>
-       <Refactor>true</Refactor>
-       <Search>true</Search>
-       <Versions>true</Versions>
-       <WhereUsed>true</WhereUsed>
+       <Edit/>
+       <Files/>
+       <Help></Help>
+       <Properties/>
+       <RecentChanges/>
+       <Refactor/>
+       <Search/>
+       <Suite/>
+       <Suites></Suites>
+       <Versions/>
+       <WhereUsed/>
 </properties>
index 8fac548eeacdd390f45493998ffdce9bf23e2506..5f6affd5067d4c84210ad23ef3d9e48c52dc1fd8 100644 (file)
@@ -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 (executable)
index 0000000..aa48d57
--- /dev/null
@@ -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.
+'''