jenkins-bot has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/878222 )
Change subject: [Bugfix] Remove timezone information when normalizing
......................................................................
[Bugfix] Remove timezone information when normalizing
Bug: T326693
Change-Id: Ia589f74da678c7c680bf352b0f8dd315291eed5f
---
M pywikibot/__init__.py
M tests/wikibase_tests.py
2 files changed, 31 insertions(+), 1 deletion(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/__init__.py b/pywikibot/__init__.py
index 8aea5a8..d78b579 100644
--- a/pywikibot/__init__.py
+++ b/pywikibot/__init__.py
@@ -606,6 +606,9 @@
This function returns a new normalized object and does not do
any modification in place.
+ Normalization will delete timezone information if the precision
+ is less than or equal to DAY.
+
Note: Normalized WbTime objects can only be compared to other
normalized WbTime objects of the same precision. Normalization
might make a WbTime object that was less than another WbTime object
@@ -649,7 +652,6 @@
'precision': self.precision,
'before': self.before,
'after': self.after,
- 'timezone': self.timezone,
'calendarmodel': self.calendarmodel,
'year': year
}
@@ -658,6 +660,8 @@
if self.precision >= self.PRECISION['day']:
kwargs['day'] = self.day
if self.precision >= self.PRECISION['hour']:
+ # See T326693
+ kwargs['timezone'] = self.timezone
kwargs['hour'] = self.hour
if self.precision >= self.PRECISION['minute']:
kwargs['minute'] = self.minute
diff --git a/tests/wikibase_tests.py b/tests/wikibase_tests.py
index 3bb61e5..0e96dad 100755
--- a/tests/wikibase_tests.py
+++ b/tests/wikibase_tests.py
@@ -391,6 +391,15 @@
t10 = pywikibot.WbTime(site=repo, year=2010, month=1, day=1, hour=12,
minute=43, second=12,
precision=millenia)
+ t11 = pywikibot.WbTime(site=repo, year=2010, month=1, day=1, hour=12,
+ minute=43, second=12, timezone=-300,
+ precision=pywikibot.WbTime.PRECISION['day'])
+ t12 = pywikibot.WbTime(site=repo, year=2010, month=1, day=1, hour=12,
+ minute=43, second=12, timezone=300,
+ precision=pywikibot.WbTime.PRECISION['day'])
+ t13 = pywikibot.WbTime(site=repo, year=2010, month=1, day=1, hour=12,
+ minute=43, second=12, timezone=-300,
+ precision=pywikibot.WbTime.PRECISION['hour'])
self.assertEqual(t.normalize(), t)
self.assertEqual(t2.normalize(), t.normalize())
self.assertEqual(t3.normalize(),
@@ -422,6 +431,13 @@
self.assertEqual(t10.normalize(),
pywikibot.WbTime(site=repo, year=2010,
precision=millenia).normalize())
+ t11_normalized = t11.normalize()
+ t12_normalized = t12.normalize()
+ self.assertEqual(t11_normalized.timezone, 0)
+ self.assertEqual(t12_normalized.timezone, 0)
+ self.assertNotEqual(t11, t12)
+ self.assertEqual(t11_normalized, t12_normalized)
+ self.assertEqual(t13.normalize().timezone, -300)
def test_WbTime_normalization_very_low_precision(self):
"""Test WbTime normalization with very low
precision."""
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/878222
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ia589f74da678c7c680bf352b0f8dd315291eed5f
Gerrit-Change-Number: 878222
Gerrit-PatchSet: 1
Gerrit-Owner: RPI2026F1 <sarkaraoyan+rpi2026f1(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged