gc-server3 пре 1 месец
родитељ
комит
33b4a7cbb8
2 измењених фајлова са 10 додато и 3 уклоњено
  1. 9 2
      cognos11/c11_api.py
  2. 1 1
      tests/test_c11_api.py

+ 9 - 2
cognos11/c11_api.py

@@ -17,6 +17,7 @@ from cognos11.xml_prettify import prettify_xml
 def convert_filename(filename: str) -> str:
     # Entferne ungültige Zeichen
     filename = re.sub(r'[<>"/|?*]', "", filename)
+    filename = filename.replace("\u2013", "")  # Grad-Zeichen
     return re.sub(r"[^\x00-\x7F]äöüÄÖÜß", "", filename)
 
 
@@ -279,11 +280,16 @@ class c11_api:
             res = [r for r in self.reports if r["path"] == folder]
 
         if specs:
-            return [self.get_report_specs(r) for r in res]
+            for _ in range(5):
+                res = [self.get_report_specs(r) for r in res]
         return res
 
     def get_report_specs(self, report):
+        if "spec" in report:
+            return report
+
         report = self.get_report_filename(report)
+
         headers = {
             "Content-Type": "text/xml; charset=UTF-8",
             "X-XSRF-TOKEN": self.headers["X-XSRF-TOKEN"],
@@ -349,7 +355,8 @@ class c11_api:
         json.dump(meta, open(filename, "w"), indent=2)
         report["cube"] = self.get_cube_name(meta)
         report["meta"] = meta
-        report["spec"] = parts[2].text
+        if len(meta["optional"]) > 0:
+            report["spec"] = parts[2].text
         return report
 
     @staticmethod

+ 1 - 1
tests/test_c11_api.py

@@ -12,4 +12,4 @@ class TestC11Api(unittest.TestCase):
 
         self.assertEqual(convert_filename(unicode_chars), "360 Rundum")
         self.assertEqual(convert_filename(simple_float), simple_float)
-        self.assertEqual(convert_filename(simple_string), simple_string)
+        self.assertEqual(convert_filename(simple_string), "Test;Default;Simple Test\n")