Skip to content

Commit 7aefe7f

Browse files
committed
refactor: add _web_days_delta for deterministic web dates
Use injectable _web_now so offline tests can freeze web page timestamps. Signed-off-by: Alan Peixinho <alan.peixinho@profusion.mobi>
1 parent 9e1c263 commit 7aefe7f

1 file changed

Lines changed: 16 additions & 7 deletions

File tree

regzbot/export_web.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,18 @@
1717
logger = regzbot.logger
1818

1919

20+
21+
def _web_now():
22+
mail_now = regzbot._TESTING.get("mail_now")
23+
if mail_now is not None:
24+
return mail_now
25+
return regzbot.timendate_now()
26+
27+
28+
def _web_days_delta(past):
29+
return (_web_now() - datetime.datetime.fromtimestamp(past, datetime.timezone.utc)).days
30+
31+
2032
class RegLinkWeb(regzbot.RegLink):
2133
def __init__(self, *args):
2234
super().__init__(*args)
@@ -718,7 +730,7 @@ def outpage_footer(yattagdoc, count):
718730
yattagdoc.text("[compiled by ")
719731
with yattagdoc.tag("a", href="https://linux-regtracking.leemhuis.info"):
720732
yattagdoc.text("regzbot")
721-
currenttime = datetime.datetime.now(datetime.timezone.utc)
733+
currenttime = _web_now()
722734
yattagdoc.text(" on %s (UTC). " % currenttime.strftime("%Y-%m-%d %H:%M:%S"))
723735

724736
yattagdoc.text("Wanna know more about regzbot? Then check out its ")
@@ -999,7 +1011,7 @@ def categorize(cls, regressionlist):
9991011
}
10001012

10011013
for regression in regressionlist:
1002-
last_activity_days = regzbot.days_delta(regression.gmtime_activity)
1014+
last_activity_days = _web_days_delta(regression.gmtime_activity)
10031015
if regression.solved_reason == "inconclusive":
10041016
categories["inconclusive"]["default"]["entries"].append(regression)
10051017
elif regression.gmtime_solved:
@@ -1110,7 +1122,7 @@ def compile(cls):
11101122
regressionslist = list()
11111123
eventslist = list()
11121124
events_gmtime_offset = (
1113-
int(datetime.datetime.now(datetime.timezone.utc).timestamp()) - 604800
1125+
int(_web_now().timestamp()) - 604800
11141126
)
11151127
if regzbot.is_running_citesting("offline"):
11161128
events_gmtime_offset = 604800 * 52 * 10
@@ -1187,10 +1199,7 @@ def compile(cls):
11871199
for regression in regressionslist:
11881200
if regression.gmtime_solved:
11891201
continue
1190-
filed_days = (
1191-
datetime.datetime.now(datetime.timezone.utc)
1192-
- datetime.datetime.fromtimestamp(regression.gmtime_filed, datetime.timezone.utc)
1193-
).days
1202+
filed_days = _web_days_delta(regression.gmtime_filed)
11941203
if filed_days < 7:
11951204
categories[regression.treename]["entries"].append(regression)
11961205
else:

0 commit comments

Comments
 (0)