jenkins-bot submitted this change.

View Change


Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[Bugfix] Fix precision not being set incorrectly.

Bug: T324798
Change-Id: I0a097dee74ed1d4cc53d0792b3b294c7600b1dcb
---
M pywikibot/__init__.py
M tests/wikibase_tests.py
2 files changed, 71 insertions(+), 14 deletions(-)

diff --git a/pywikibot/__init__.py b/pywikibot/__init__.py
index 97c4bd9..db7bdfe 100644
--- a/pywikibot/__init__.py
+++ b/pywikibot/__init__.py
@@ -368,22 +368,27 @@
"""
if year is None:
raise ValueError('no year given')
- self.precision = self.PRECISION['second']
- if second is None:
- self.precision = self.PRECISION['minute']
- second = 0
- if minute is None:
- self.precision = self.PRECISION['hour']
- minute = 0
- if hour is None:
- self.precision = self.PRECISION['day']
- hour = 0
- if day is None:
+ self.precision = self.PRECISION['year']
+ if month is not None:
self.precision = self.PRECISION['month']
- day = 1
- if month is None:
- self.precision = self.PRECISION['year']
+ else:
month = 1
+ if day is not None:
+ self.precision = self.PRECISION['day']
+ else:
+ day = 1
+ if hour is not None:
+ self.precision = self.PRECISION['hour']
+ else:
+ hour = 0
+ if minute is not None:
+ self.precision = self.PRECISION['minute']
+ else:
+ minute = 0
+ if second is not None:
+ self.precision = self.PRECISION['second']
+ else:
+ second = 0
self.year = year
self.month = month
self.day = day
diff --git a/tests/wikibase_tests.py b/tests/wikibase_tests.py
index 3d137eb..c97f6f7 100755
--- a/tests/wikibase_tests.py
+++ b/tests/wikibase_tests.py
@@ -301,6 +301,48 @@
day=0, hour=12, minute=43,
precision=14))

+ def test_WbTime_skip_params_precision(self):
+ """Test skipping units (such as day, month) when creating WbTimes."""
+ repo = self.get_repo()
+ t = pywikibot.WbTime(year=2020, day=2, site=repo)
+ self.assertEqual(t, pywikibot.WbTime(year=2020, month=1, day=2,
+ site=repo))
+ self.assertEqual(t.precision, pywikibot.WbTime.PRECISION['day'])
+ t2 = pywikibot.WbTime(year=2020, hour=5, site=repo)
+ self.assertEqual(t2, pywikibot.WbTime(year=2020, month=1, day=1,
+ hour=5, site=repo))
+ self.assertEqual(t2.precision, pywikibot.WbTime.PRECISION['hour'])
+ t3 = pywikibot.WbTime(year=2020, minute=5, site=repo)
+ self.assertEqual(t3, pywikibot.WbTime(year=2020, month=1, day=1,
+ hour=0, minute=5, site=repo))
+ self.assertEqual(t3.precision, pywikibot.WbTime.PRECISION['minute'])
+ t4 = pywikibot.WbTime(year=2020, second=5, site=repo)
+ self.assertEqual(t4, pywikibot.WbTime(year=2020, month=1, day=1,
+ hour=0, minute=0, second=5,
+ site=repo))
+ self.assertEqual(t4.precision, pywikibot.WbTime.PRECISION['second'])
+ t5 = pywikibot.WbTime(year=2020, month=2, hour=5, site=repo)
+ self.assertEqual(t5, pywikibot.WbTime(year=2020, month=2, day=1,
+ hour=5, site=repo))
+ self.assertEqual(t5.precision, pywikibot.WbTime.PRECISION['hour'])
+ t6 = pywikibot.WbTime(year=2020, month=2, minute=5, site=repo)
+ self.assertEqual(t6, pywikibot.WbTime(year=2020, month=2, day=1,
+ hour=0, minute=5, site=repo))
+ self.assertEqual(t6.precision, pywikibot.WbTime.PRECISION['minute'])
+ t7 = pywikibot.WbTime(year=2020, month=2, second=5, site=repo)
+ self.assertEqual(t7, pywikibot.WbTime(year=2020, month=2, day=1,
+ hour=0, minute=0, second=5,
+ site=repo))
+ self.assertEqual(t7.precision, pywikibot.WbTime.PRECISION['second'])
+ t8 = pywikibot.WbTime(year=2020, day=2, hour=5, site=repo)
+ self.assertEqual(t8, pywikibot.WbTime(year=2020, month=1, day=2,
+ hour=5, site=repo))
+ self.assertEqual(t8.precision, pywikibot.WbTime.PRECISION['hour'])
+ t9 = pywikibot.WbTime(year=2020, month=3, day=2, minute=5, site=repo)
+ self.assertEqual(t9, pywikibot.WbTime(year=2020, month=3, day=2,
+ hour=0, minute=5, site=repo))
+ self.assertEqual(t9.precision, pywikibot.WbTime.PRECISION['minute'])
+
def test_WbTime_timestamp(self):
"""Test timestamp functions of WbTime."""
repo = self.get_repo()

To view, visit change 866512. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I0a097dee74ed1d4cc53d0792b3b294c7600b1dcb
Gerrit-Change-Number: 866512
Gerrit-PatchSet: 7
Gerrit-Owner: RPI2026F1 <sarkaraoyan+rpi2026f1@gmail.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged