about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--create_report.py14
-rw-r--r--template.html338
2 files changed, 93 insertions, 259 deletions
diff --git a/create_report.py b/create_report.py
index 6a95a14..107f62c 100644
--- a/create_report.py
+++ b/create_report.py
@@ -1,22 +1,16 @@
+from parse_data import data, stats
+
 from jinja2 import Environment, FileSystemLoader
 
 # Load the template from the current directory
 env = Environment(loader=FileSystemLoader('.'))
 template = env.get_template("template.html")
 
-# Data to be passed into the template
-data = {
-    "title": "My Report",
-    "items": ["Apple", "Banana", "Cherry"]
-}
-
-data["items"].append("hello")
-
 # Render the template with data
-html_output = template.render(data)
+html_output = template.render(data=data, stats=stats)
 
 # Save the generated HTML to a file
 with open("report.html", "w", encoding="utf-8") as f:
     f.write(html_output)
 
-print("Report generated: report.html")
+print("Report generated: report.html")
\ No newline at end of file
diff --git a/template.html b/template.html
index bcd1aaa..0e2bfc8 100644
--- a/template.html
+++ b/template.html
@@ -268,9 +268,11 @@
       .TableHeadingCell
       {
         background-color: rgb(179, 179, 179);
+        height:           30px;
         font-family:      arial, verdana, trebuchet, officina, sans-serif;
         font-weight:      bold;
         text-align:       center;
+        padding:          5px;
       }
   
       .CellNoColor
@@ -709,7 +711,11 @@
     <center>
       <table class="OverallResultTable">
         <tr>
-          <td class="PositiveResult">Test passed</td>
+          {% if stats.failed %}
+            <td class="NegativeResult">Test failed</td>
+          {% else %}
+            <td class="PositiveResult">Test passed</td>
+          {% endif %}
         </tr>
       </table>
     </center>
@@ -722,73 +728,58 @@
       </tr>
     </table>
     <div class="Indentation">
-      <table class="DefaultTable">
-        <tr>
-          <td style="padding-right: 0.5em;" class="CellNoColor">Test begin: </td>
-          <td style="padding-right: 0.5em;" class="CellNoColor">2024-12-12 13:51:35</td>
-          <td class="CellNoColor">(logging timestamp  121.519934)</td>
-        </tr>
-        <tr>
-          <td style="padding-right: 0.5em;" class="CellNoColor">Test end: </td>
-          <td style="padding-right: 0.5em;" class="CellNoColor">2024-12-12 23:30:01</td>
-          <td class="CellNoColor" nowrap>(logging timestamp 34826.705759)</td>
-        </tr>
-      </table>
       <div class="Heading4">Statistics</div>
       <div class="Indentation">
         <table class="OverviewTable">
           <tr>
             <td class="DefineCell">Overall number of test cases </td>
-            <td class="NumberCell" width="60">1</td>
+            <td class="NumberCell" width="60">{{stats.number_tests}}</td>
             <td class="DefaultCell"></td>
           </tr>
           <tr>
-            <td class="DefineCell">Executed test cases </td>
-            <td class="NumberCell">1</td>
-            <td class="DefaultCell">100% of all test cases</td>
-          </tr>
-          <tr>
-            <td class="DefineCell">Not executed test cases </td>
-            <td class="NumberCell">0</td>
-            <td class="DefaultCell">0% of all test cases</td>
-          </tr>
-          <tr>
             <td class="DefineCell">Test cases passed </td>
-            <td class="NumberCellPositiveResult">1</td>
-            <td class="NumberCellPositiveResult">100% of executed test cases</td>
+            {% if stats.failed %}
+              <td class="NumberCell">{{stats.number_passed}}</td>
+              <td class="NumberCell">{{stats.percentage_passed}}% of executed test cases</td>
+            {% else %}
+              <td class="NumberCellPositiveResult">{{stats.number_passed}}</td>
+              <td class="NumberCellPositiveResult">{{stats.percentage_passed|round(1)}}% of executed test cases</td>
+            {% endif %}
           </tr>
           <tr>
             <td class="DefineCell">Test cases failed </td>
-            <td class="NumberCell">0</td>
-            <td class="NumberCell">0% of executed test cases</td>
+            {% if stats.failed %}
+              <td class="NumberCellNegativeResult">{{stats.number_failed}}</td>
+              <td class="NumberCellNegativeResult">{{stats.percentage_failed|round(1)}}% of executed test cases</td>
+            {% else %}
+              <td class="NumberCell">{{stats.number_failed}}</td>
+              <td class="NumberCell">{{stats.percentage_failed}}% of executed test cases</td>
+            {% endif %}
           </tr>
         </table>
       </div>
       <div class="Heading4">Test Case Results</div>
       <div class="Indentation">
         <table class="OverviewTable">
+          {% for category in data %}
           <tr>
-            <td class="DefineCell">1</td>
+            <td class="DefineCell">{{loop.index}}</td>
             <td class="DefaultCell"></td>
             <td class="DefaultCell">
-              <a href="#i__-962653104_8">iq_sys_integ_test_InterruptRX</a>
+              <a href="#i__{{loop.index}}">{{category.name}}</a>
             </td>
-            <td class="PositiveResultCell">pass</td>
+            
+            {% if category.failed %}
+              <td class="NegativeResultCell">fail</td>
+            {% else %}
+              <td class="PositiveResultCell">pass</td>
+            {% endif %}
+
           </tr>
+          {% endfor %}
         </table>
       </div>
     </div>
-    <a name="TestModuleInfo"></a>
-    <table class="SubHeadingTable">
-      <tr>
-        <td class="LinkCell">
-          <a class="Undecorated" id="lnk_" href="javascript:switchAll('',document.all['lnk_'].text)">[−]</a>
-        </td>
-        <td>
-          <div class="Heading2">Test Module Information</div>
-        </td>
-      </tr>
-    </table>
     <table class="SubHeadingTable">
       <tr>
         <td>
@@ -796,232 +787,81 @@
         </td>
       </tr>
     </table>
+    
+    {% for category in data %}
+    
     <table>
       <tr>
         <td class="LinkCell">
-          <a class="Undecorated" id="lnk_1" href="javascript:switchAll('1',document.all['lnk_1'].text)">[−]</a>
-        </td>
-        <td class="TestcaseHeadingPositiveResult">
-          <big class="Heading3">1 <a name="i__-962653104_8">iq_sys_integ_test_InterruptRX</a>: Passed</big>
+          <a class="Undecorated" id="lnk_{{loop.index}}" href="javascript:switchAll('{{loop.index}}',document.all['lnk_{{loop.index}}'].text)">[−]</a>
         </td>
+        {% if category.failed %}
+          <td class="TestcaseHeadingNegativeResult">
+            <big class="Heading3">{{loop.index}} <a name="i__{{loop.index}}">{{category.name}}</a>: Failed</big>
+          </td>
+        {% else %}
+          <td class="TestcaseHeadingPositiveResult">
+            <big class="Heading3">{{loop.index}} <a name="i__{{loop.index}}">{{category.name}}</a>: Passed</big>
+          </td>
+        {% endif %}
       </tr>
     </table>
-    <div class="Indentation" id="div_1">
-      <div class="Indentation">
-        <table class="DefaultTable">
-          <tr>
-            <td style="padding-right: 0.5em;" class="CellNoColor">Test case begin: </td>
-            <td style="padding-right: 0.5em;" class="CellNoColor">2024-12-12 13:51:45</td>
-            <td class="CellNoColor">(logging timestamp  131.269934)</td>
-          </tr>
-          <tr>
-            <td style="padding-right: 0.5em;" class="CellNoColor">Test case end: </td>
-            <td style="padding-right: 0.5em;" class="CellNoColor">2024-12-12 23:30:01</td>
-            <td class="CellNoColor" nowrap>(logging timestamp 34826.705759)</td>
-          </tr>
-        </table>
-      </div>
-      <div class="Indentation"></div>
-      <table class="TestGroupHeadingBackground">
-        <tr>
-          <td>
-            <big class="Heading3">Main Part of Test Case</big>
-          </td>
-        </tr>
-      </table>
+    <div class="Indentation" id="div_{{loop.index}}">
       <div class="Indentation">
         <table class="ResultTable">
           <tr>
             <th class="TableHeadingCell" width="1px">Timestamp</th>
-            <th class="TableHeadingCell" width="1px">Test Step</th>
-            <th class="TableHeadingCell" width="auto">Description</th>
             <th class="TableHeadingCell" width="1px">Result</th>
+            <th class="TableHeadingCell" width="auto">Description</th>
           </tr>
           <tr>
-            <td class="PatternSeparator" colspan="4"></td>
-          </tr>
-          <tr class="PositiveResultBackground">
-            <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="4">
-              <big class="Heading4">1. Software and setup - Informations about the flashed SW and the setup: Passed</big>
-            </td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">INFO: System Supplier ECU Software Version Number: ---RELTX290</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">INFO: System Bootloader Version: B901</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">INFO: System Software Version: X290</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">INFO: System Dataset Version: X290</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">INFO: Dataset version: Evo 0402 - BMC_Dataset_XHX15EV0402M2.dcm</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td class="PatternSeparator" colspan="4"></td>
-          </tr>
-          <tr>
-            <td class="PatternSeparator" colspan="4"></td>
-          </tr>
-          <tr class="PositiveResultBackground">
-            <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="4">
-              <big class="Heading4">2. Initializing - Initializing the testcase: Passed</big>
-            </td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 133.810581</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CarManager: CarManager: Set KL15 ON</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 134.610581</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CommunicationManager: UDS-Request 22 01 74</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 134.631223</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">SFDManager: GetUnlockStatusOfECUOfProtectionOfVehicleDiagnosis response: 62 01 74 00 00 00 00</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 134.631223</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CarManager: CarManager: Set KL15 OFF</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 135.431223</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CommunicationManager: UDS-Request 22 F1 86</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 135.521790</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CommunicationManager: UDS-Request 22 F1 86</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 135.541488</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CommunicationManager: UDS-Request 10 03</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 135.562473</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">Changed to session EXTENDED (03)</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 135.562473</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CommunicationManager: UDS-Request 22 0A A3</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 135.581408</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CommunicationManager: UDS-Request 22 F1 86</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 135.601411</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CommunicationManager: UDS-Request 10 01</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 135.621405</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">Changed to session STANDARD (01)</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td class="PatternSeparator" colspan="4"></td>
-          </tr>
-          <tr>
-            <td class="PatternSeparator" colspan="4"></td>
-          </tr>
-          <tr class="PositiveResultBackground">
-            <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="4">
-              <big class="Heading4">3. Test Routine - Actual testcase: Passed</big>
-            </td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell"> 135.621405</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">INFO: Ignoring DTC 0x10000A: BMC_F_ChineseSerialNumber_Unfilled : BMC_F_ChineseSerialNumber_Unfilled</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell">7794.021654</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">Reset Condition (shortloop vs. timeout) correctly specified.</td>
-            <td class="PositiveResultCell">pass</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell">7794.021654</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">Reset Condition (shortloop vs. timeout) correctly specified.</td>
-            <td class="NegativeResultCell">fail</td>
-          </tr>
-          <tr>
-            <td class="PatternSeparator" colspan="4"></td>
-          </tr>
-          <tr>
-            <td class="PatternSeparator" colspan="4"></td>
-          </tr>
-          <tr class="PositiveResultBackground">
-            <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="4">
-              <big class="Heading4">4. Finalizing - Cleaning up: Passed</big>
-            </td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell">34825.405759</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">FaultManager: Successfully cleared DTCs</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell">34825.905759</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">INFO: CarManager: CarManager: KL15 is already ON</td>
-            <td class="DefaultCell">-</td>
-          </tr>
-          <tr>
-            <td style="text-indent: 20px;" class="DefineCell">34825.905759</td>
-            <td class="NumberCell"></td>
-            <td class="DefaultCell">CarManager: CarManager: Set KL15 OFF</td>
-            <td class="DefaultCell">-</td>
+            <td class="PatternSeparator" colspan="3"></td>
           </tr>
+          
+          {% for test in category.tests %}
+          
+            {% if test.failed %}
+              <tr class="NegativeResultBackground">
+                <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="3">
+                  <big class="Heading4">Test {{loop.index}} - {{test.description}}: Failed</big>
+            {% else %}
+              <tr class="PositiveResultBackground">
+                <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="3">
+                  <big class="Heading4">Test {{loop.index}} - {{test.description}}: Passed</big>
+            {% endif %}
+              </td>
+            </tr>
+            
+            {% for log in test.logs %}
+              <tr>
+                <td style="text-indent: 20px;" class="DefineCell"> {{log.timestamp}}</td>
+                {% if log.log_type == "FAIL" %}
+                  <td class="NegativeResultCell">fail</td>
+                {% elif log.log_type == "SUCCESS" %}
+                  <td class="PositiveResultCell">pass</td>
+                {% else %}
+                  <td class="DefaultCell">info</td>
+                {% endif %}
+                <td class="DefaultCell">{{log.fail_message}}</td>
+              </tr>
+            {% endfor %}
+            
+            <tr>
+              <td class="PatternSeparator" colspan="3"></td>
+            </tr>
+          
+          {% endfor %}
+
+          
           <tr>
-            <td class="PatternSeparator" colspan="4"></td>
+            <td class="PatternSeparator" colspan="3"></td>
           </tr>
         </table>
       </div>
     </div>
+    
+    {% endfor %}
+
     <table class="SubHeadingTable">
       <tr>
         <td>