# 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"],
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")
]