Skip to content

Commit

Permalink
chore: improve the temperature cutoff levels (#13)
Browse files Browse the repository at this point in the history
Signed-off-by: Jaime Silvela <[email protected]>
  • Loading branch information
jsilvela authored Jun 6, 2024
1 parent 66591bc commit cb05ffa
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 16 deletions.
35 changes: 22 additions & 13 deletions summarize_test_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -589,20 +589,29 @@ def compute_semaphore(success_percent, embed=True):
If set to `embed`, an emoji will be used. Else, a textual representation
of a Slack emoji is used.
"""
if embed:
if success_percent >= 95:
return "🟢"
elif success_percent >= 60:
return "🟡"
else:
return "🔴"
levels = {
"good": {
"emoji": "🟢",
"text": ":large_green_circle:",
},
"average": {
"emoji": "🟡",
"text": ":large_yellow_circle:",
},
"bad": {
"emoji": "🔴",
"text": ":red_circle:",
},
}
form = "emoji"
if not embed:
form = "text"
if success_percent >= 99:
return levels["good"][form]
elif success_percent >= 95:
return levels["average"][form]
else:
if success_percent >= 95:
return ":large_green_circle:"
elif success_percent >= 60:
return ":large_yellow_circle:"
else:
return ":red_circle:"
return levels["bad"][form]


def compute_thermometer_on_metric(summary, metric, embed=True):
Expand Down
22 changes: 19 additions & 3 deletions test_summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,19 +69,35 @@ def test_compute_summary(self):

def test_compute_thermometer(self):
self.maxDiff = None
thermometer = summarize_test_results.compute_thermometer_on_metric(self.summary, "by_platform")
thermometer = summarize_test_results.compute_thermometer_on_metric(
self.summary, "by_platform"
)

self.assertEqual(
thermometer,
"Platforms thermometer:\n\n"
"- 🟡 - local: 66.7% success.\t(1 out of 3 tests failed)\n\n"
"- 🔴 - local: 66.7% success.\t(1 out of 3 tests failed)\n\n",
)

thermometerPlaintext = summarize_test_results.compute_thermometer_on_metric(
self.summary, "by_platform", False
)

self.assertEqual(
thermometerPlaintext,
"Platforms thermometer:\n\n"
"- :red_circle: - local: 66.7% success.\t(1 out of 3 tests failed)\n\n",
)

def test_compute_systematic_failures(self):
self.maxDiff = None

for metric in ["by_test", "by_k8s", "by_postgres", "by_platform"]:
has_alerts, out = summarize_test_results.compute_systematic_failures_on_metric(self.summary, metric)
has_alerts, out = (
summarize_test_results.compute_systematic_failures_on_metric(
self.summary, metric
)
)
self.assertEqual(has_alerts, False)
self.assertEqual(out, "")

Expand Down

0 comments on commit cb05ffa

Please sign in to comment.