jenkins-bot has submitted this change. ( https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1047079?usp=email )
Change subject: [IMPR] ignore ValueError durig upcast of FilePage due to invalid file extension ...................................................................... [IMPR] ignore ValueError durig upcast of FilePage due to invalid file extension Also remove retry loop in TestFilePageDataItem.test_data_item_when_file_exist_but_without_item of file_tests which doesn't make any sense because the generator was empty after the exception. Now let the test fail if an exception might occur but skip the test if no related FilePage was found. Bug: T367777 Change-Id: Ife4b1a7e648f770df98d6141902a28e0d7cb62f5 --- M pywikibot/pagegenerators/_generators.py M tests/file_tests.py 2 files changed, 20 insertions(+), 14 deletions(-) Approvals: Zache-tool: Looks good to me, approved jenkins-bot: Verified diff --git a/pywikibot/pagegenerators/_generators.py b/pywikibot/pagegenerators/_generators.py index af59e3d..2e5fcee 100644 --- a/pywikibot/pagegenerators/_generators.py +++ b/pywikibot/pagegenerators/_generators.py @@ -155,8 +155,7 @@ namespaces: NamespaceArgType = (0, ), total: int | None = None ) -> Generator[pywikibot.page.Page, None, None]: - """ - Iterate Page objects for all new titles in a single namespace. + """Iterate Page objects for all new titles in a single namespace. :param site: Site for generator results. :param namespace: namespace to retrieve pages from @@ -185,8 +184,14 @@ .. versionchanged:: 8.2 The YieldType depends on namespace. It can be - :class:`pywikibot.Page`, :class:`pywikibot.User`, - :class:`pywikibot.FilePage` or :class:`pywikibot.Category`. + :class:`pywikibot.Page<pywikibot.page.Page>`, + :class:`pywikibot.User<pywikibot.page.User>`, + :class:`pywikibot.FilePage<pywikibot.page.FilePage>` or + :class:`pywikibot.Category<pywikibot.page.Category>`. + .. versionchanged:: 9.2 + Ignore :class:`pywikibot.FilePage<pywikibot.page.FilePage>` if it + raises a :exc:`ValueError` during upcast e.g. due to an invaild + file extension. :param site: Site for generator results. """ @@ -206,7 +211,12 @@ pageclass = pywikibot.Category else: pageclass = pywikibot.Page - yield pageclass(site, rc['title']) + try: + yield pageclass(site, rc['title']) + except ValueError: + if pageclass == pywikibot.FilePage: + pywikibot.exception() + raise if site is None: site = pywikibot.Site() diff --git a/tests/file_tests.py b/tests/file_tests.py index f55d73c..6650bcc 100755 --- a/tests/file_tests.py +++ b/tests/file_tests.py @@ -415,16 +415,12 @@ ) # Seek to first page without mediainfo. - # Retry loop is for excepting incorrect files - for retry in range(5): - try: - for page in gen: - slots = page.latest_revision.slots - if 'mediainfo' not in slots: - break + for page in gen: + slots = page.latest_revision.slots + if 'mediainfo' not in slots: break - except ValueError: - pass + else: + self.skipTest('No page found without mediainfo') item = page.data_item() self.assertIsInstance(item, pywikibot.MediaInfo) -- To view, visit https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1047079?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: Ife4b1a7e648f770df98d6141902a28e0d7cb62f5 Gerrit-Change-Number: 1047079 Gerrit-PatchSet: 3 Gerrit-Owner: Xqt <i...@gno.de> Gerrit-Reviewer: JJMC89 <jjmc89.wikime...@gmail.com> Gerrit-Reviewer: Zache-tool <kimmo.virta...@gmail.com> Gerrit-Reviewer: jenkins-bot
_______________________________________________ Pywikibot-commits mailing list -- pywikibot-commits@lists.wikimedia.org To unsubscribe send an email to pywikibot-commits-le...@lists.wikimedia.org