UTI: code clean-up
[csit.git] / resources / tools / dash / app / pal / news / tables.py
index c8f851b..1a6c7d2 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-"""
+"""The tables with news.
 """
 
 import pandas as pd
 import dash_bootstrap_components as dbc
 
+from ..utils.constants import Constants as C
 
-def table_failed(data: pd.DataFrame, job: str) -> list:
-    """
+
+def table_news(data: pd.DataFrame, job: str) -> list:
+    """Generates the tables with news:
+    1. Falied tests from the last run
+    2. Regressions and progressions calculated from the last C.NEWS_TIME_PERIOD
+       days.
+
+    :param data: Trending data with calculated annomalies to be displayed in the
+        tables.
+    :param job: The job name.
+    :type data: pandas.DataFrame
+    :type job: str
     """
 
     job_data = data.loc[(data["job"] == job)]
-    failed = job_data["lst_failed"].to_list()[0]
+    failed = job_data["failed"].to_list()[0]
+    regressions = {"Test Name": list(), "Last Regression": list()}
+    for itm in job_data["regressions"].to_list()[0]:
+        regressions["Test Name"].append(itm[0])
+        regressions["Last Regression"].append(itm[1].strftime('%Y-%m-%d %H:%M'))
+    progressions = {"Test Name": list(), "Last Progression": list()}
+    for itm in job_data["progressions"].to_list()[0]:
+        progressions["Test Name"].append(itm[0])
+        progressions["Last Progression"].append(
+            itm[1].strftime('%Y-%m-%d %H:%M'))
 
     return [
         dbc.Table.from_dataframe(pd.DataFrame.from_dict({
             "Job": job_data["job"],
-            "Build": job_data["build"],
+            "Last Build": job_data["build"],
             "Date": job_data["start"],
             "DUT": job_data["dut_type"],
             "DUT Version": job_data["dut_version"],
@@ -39,5 +59,27 @@ def table_failed(data: pd.DataFrame, job: str) -> list:
                 f"Last Failed Tests on "
                 f"{job_data['start'].values[0]} ({len(failed)})"
             ): failed
-        }), bordered=True, striped=True, hover=True, size="sm", color="light")
+        }), bordered=True, striped=True, hover=True, size="sm", color="light"),
+        dbc.Label(
+            class_name="p-0",
+            size="lg",
+            children=(
+                f"Regressions during the last {C.NEWS_TIME_PERIOD} days "
+                f"({len(regressions['Test Name'])})"
+            )
+        ),
+        dbc.Table.from_dataframe(
+            pd.DataFrame.from_dict(regressions),
+            bordered=True, striped=True, hover=True, size="sm", color="light"),
+        dbc.Label(
+            class_name="p-0",
+            size="lg",
+            children=(
+                f"Progressions during the last {C.NEWS_TIME_PERIOD} days "
+                f"({len(progressions['Test Name'])})"
+            )
+        ),
+        dbc.Table.from_dataframe(
+            pd.DataFrame.from_dict(progressions),
+            bordered=True, striped=True, hover=True, size="sm", color="light")
     ]