jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/866512 )
Change subject: [Bugfix] Fix precision not being set incorrectly. ...................................................................... [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(-) Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified 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 https://gerrit.wikimedia.org/r/c/pywikibot/core/+/866512 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: I0a097dee74ed1d4cc53d0792b3b294c7600b1dcb Gerrit-Change-Number: 866512 Gerrit-PatchSet: 7 Gerrit-Owner: RPI2026F1 <sarkaraoyan+rpi202...@gmail.com> Gerrit-Reviewer: Xqt <i...@gno.de> Gerrit-Reviewer: jenkins-bot Gerrit-MessageType: merged
_______________________________________________ Pywikibot-commits mailing list -- pywikibot-commits@lists.wikimedia.org To unsubscribe send an email to pywikibot-commits-le...@lists.wikimedia.org