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]

Reply via email to