jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1324212?usp=email )
Change subject: archivebot: Reuse ISO calendar date
......................................................................
archivebot: Reuse ISO calendar date
Calculate the ISO calendar once when building archive parameters.
Reuse its year and week values instead of repeating the conversion.
Change-Id: I3186e417165e2bf75912e3f27692fe3fe092127d
---
M scripts/archivebot.py
M tests/archivebot_tests.py
2 files changed, 27 insertions(+), 2 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/archivebot.py b/scripts/archivebot.py
index e21db90..dcec6f3 100755
--- a/scripts/archivebot.py
+++ b/scripts/archivebot.py
@@ -762,11 +762,12 @@
def get_params(self, timestamp, counter: int) -> dict:
"""Make params for archiving template."""
lang = self.site.lang
+ iso_year, iso_week, _ = timestamp.isocalendar()
params = {
'counter': counter,
'year': timestamp.year,
- 'isoyear': timestamp.isocalendar()[0],
- 'isoweek': timestamp.isocalendar()[1],
+ 'isoyear': iso_year,
+ 'isoweek': iso_week,
'semester': int(ceil(timestamp.month / 6)),
'quarter': int(ceil(timestamp.month / 3)),
'month': timestamp.month,
diff --git a/tests/archivebot_tests.py b/tests/archivebot_tests.py
index 088c3cd..f3840f7 100755
--- a/tests/archivebot_tests.py
+++ b/tests/archivebot_tests.py
@@ -10,6 +10,8 @@
import unittest
from contextlib import suppress
from datetime import datetime
+from types import SimpleNamespace
+from unittest.mock import Mock
import pywikibot
from pywikibot.exceptions import Error
@@ -81,6 +83,28 @@
net = False
+ def test_get_params_reuses_isocalendar(self) -> None:
+ """Test that the ISO calendar is calculated once."""
+ date = datetime(2024, 12, 30)
+ timestamp = SimpleNamespace(
+ year=date.year,
+ month=date.month,
+ isocalendar=Mock(return_value=date.isocalendar()),
+ timetuple=date.timetuple,
+ )
+ archiver = SimpleNamespace(
+ site=SimpleNamespace(lang='en'),
+ month_num2orig_names={
+ 12: {'long': 'December', 'short': 'Dec'},
+ },
+ )
+
+ params = archivebot.PageArchiver.get_params(
+ archiver, timestamp, counter=1)
+
+ self.assertEqual((params['isoyear'], params['isoweek']), (2025, 1))
+ timestamp.isocalendar.assert_called_once_with()
+
def test_str2size(self) -> None:
"""Test for parsing the shorthand notation of sizes."""
self.assertEqual(archivebot.str2size('0'), (0, 'B'))
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1324212?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I3186e417165e2bf75912e3f27692fe3fe092127d
Gerrit-Change-Number: 1324212
Gerrit-PatchSet: 2
Gerrit-Owner: Mahveotm <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]