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

Reply via email to