There is a redirect File:Invalid.ext on test wiki in File namespace.
randompages() tries to upcast to a FilePage but fails due to invalid extension
13:19:45 ====================================================================== 13:19:45 ERROR: test_redirects (tests.site_generators_tests.SiteRandomTestCase) 13:19:45 Test site.randompages() with redirects. 13:19:45 ---------------------------------------------------------------------- 13:19:45 Traceback (most recent call last): 13:19:45 File "/src/tests/site_generators_tests.py", line 1579, in test_redirects 13:19:45 for rndpage in mysite.randompages(total=5, redirects=True): 13:19:45 File "/usr/lib/python3.6/_collections_abc.py", line 317, in __next__ 13:19:45 return self.send(None) 13:19:45 File "/src/pywikibot/tools/collections.py", line 275, in send 13:19:45 return next(self._started_gen) 13:19:45 File "/src/pywikibot/data/api/_generators.py", line 619, in generator 13:19:45 yield from self._extract_results(resultdata) 13:19:45 File "/src/pywikibot/data/api/_generators.py", line 563, in _extract_results 13:19:45 result = self.result(item) 13:19:45 File "/src/pywikibot/data/api/_generators.py", line 722, in result 13:19:45 p = pywikibot.FilePage(p) 13:19:45 File "/src/pywikibot/page/_filepage.py", line 62, in __init__ 13:19:45 f'{title!r} does not have a valid extension ' 13:19:45 ValueError: 'File:Invalid.ext' does not have a valid extension (djvu, flac, gif, jpeg, jpg, mid, midi, mp3, mpeg, mpg, oga, ogg, ogv, opus, pdf, png, stl, svg, tif, tiff, wav, webm, webp, xcf). 13:19:45
https://integration.wikimedia.org/ci/job/pywikibot-core-tox-deeptest-py36-docker/2756/console
Maybe the redirect status should be checked first before the extension is checked. Or can we have a Page object in namespace 6 which is not a FilePage?
We have a similar problem with wanted files generator:
D:\pwb\GIT\core>pwb -site:wowwiki:uk pagegenerators_tests -v TestWantedFactoryGenerator.test_wanted_files tests: max_retries reduced from 15 to 1 test_wanted_files (__main__.TestWantedFactoryGenerator.test_wanted_files) Test wantedfiles generator. ... ERROR ====================================================================== ERROR: test_wanted_files (__main__.TestWantedFactoryGenerator.test_wanted_files) Test wantedfiles generator. ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\pwb\GIT\core\tests\pagegenerators_tests.py", line 1437, in test_wanted_files for page in self._generator_with_tests(): File "D:\pwb\GIT\core\tests\pagegenerators_tests.py", line 1424, in _generator_with_tests pages = list(gen) ^^^^^^^^^ File "<frozen _collections_abc>", line 330, in __next__ File "D:\pwb\GIT\core\pywikibot\tools\collections.py", line 275, in send return next(self._started_gen) ^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pwb\GIT\core\pywikibot\data\api\_generators.py", line 619, in generator yield from self._extract_results(resultdata) File "D:\pwb\GIT\core\pywikibot\data\api\_generators.py", line 563, in _extract_results result = self.result(item) ^^^^^^^^^^^^^^^^^ File "D:\pwb\GIT\core\pywikibot\data\api\_generators.py", line 722, in result p = pywikibot.FilePage(p) ^^^^^^^^^^^^^^^^^^^^^ File "D:\pwb\GIT\core\pywikibot\page\_filepage.py", line 61, in __init__ raise ValueError( ValueError: "Файл:' .. img filename .. '" does not have a valid extension (flac, gif, ico, jpeg, jpg, mkv, mov, mp3, mp4, odm, oga, ogg, ogv, pdf, png, svg, wav, webm, webp). ---------------------------------------------------------------------- Ran 1 test in 2.877s FAILED (errors=1) D:\pwb\GIT\core>
This behaviour was introduced with T345786 (rPWBC8c86bcb)