Page MenuHomePhabricator

link_tests.Test.TestForeignInterwikiLinks.test_other_wiki_prefix fails
Closed, ResolvedPublic

Description

link_tests.Test.TestForeignInterwikiLinks.test_other_wiki_prefix fails. The reason is that https://bulbapedia.bulbagarden.net makes a safety check before the API request is processed. A html page is gven instead of a json content:

Just a moment...

requests.exceptions.JSONDecodeError: [Errno Expecting value] <!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><link href="/cdn-cgi/styles/challenges.css" rel="stylesheet"><meta http-equiv="refresh" content="375"></head><body class="no-js"><div class="main-wrapper" role="main"><div class="main-content"><noscript><div id="challenge-error-title"><div class="h2"><span class="icon-wrapper"><div class="heading-icon warning-icon"></div></span><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></div></noscript></div></div><script>(function(){window._cf_chl_opt={cvId: '2',cZone: "bulbapedia.bulbagarden.net",cType: 'managed',cNounce: '69021',cRay: '84257440ce496674',cHash: '82e0eb9e321a77e',cUPMDTk: "\/w\/api.php?action=query&meta=siteinfo%7Cuserinfo&siprop=namespaces%7Cnamespacealiases%7Cgeneral&uiprop=blockinfo%7Chasmsg&maxlag=5&format=json&__cf_chl_tk=_IUfnb_MNE7ywqvW_P5FOylYE26b13841wP3bWRsIoE-1704727536-0-gaNycGzNDGU",cFPWv: 'g',cTTimeMs: '1000',cMTimeMs: '375000',cTplV: 5,cTplB: 'cf',cK: "visitor-time",fa: "\/w\/api.php?action=query&meta=siteinfo%7Cuserinfo&siprop=namespaces%7Cnamespacealiases%7Cgeneral&uiprop=blockinfo%7Chasmsg&maxlag=5&format=json&__cf_chl_f_tk=_IUfnb_MNE7ywqvW_P5FOylYE26b13841wP3bWRsIoE-1704727536-0-gaNycGzNDGU",md: "5Y3OhQisiWrVQIAqgYxluurfJ48om3hJMmhEGiGd8fI-1704727536-1-AQOMYpbg9xRTgreNwXwgL1HNZ2NFKwm9W5FcSD3hfGWKliOPiJrHlTIn9slByG1686PxYsPiEM9wmIlJtPT-ON4L4hY_twyzUgn-GPurcgDRFRhk4fWyvYM_OyGtA9jAdLYah06ihjuHf44SifhB0NGaAqdKqUEr2jL26OPzHCh7tveWycTMwozALB_rqNTygOuZsVwZmH2WuL2hrOsR-un4OdJkX_QCSLOZ08rFAPOhUFvSZ983ApLLclmt2yOj_h4ePJ4EHg-vSH8362i2NHeyhZ-7h_osSl92UHBn3IfDt9zsUDrk3UiGmAiiqbFiM4stkB9RDN-hy3FhRy2WNfFw0hvoQr6GqjxwrxVvkgVj5yjQ4iOu_Bb9EFLUg1BkN3dMSOlcC8iEyfcKper5K5AQoeysOrfJ1CRYoo2JccaHpKxRzQTGW5_A5qErH2h69tNc8c7OXOs7UKQP3ThM1AccEQIvjDURm_YrMTtQPud_37CDquKcJ8SxTvkfUhYPeR7IOnvkbzn_3xr4cxxhIFFvH8Xyn1jPcFFOiePeJE7BoW8CebeX2T0D4i-XCuEVgM5yPyETqVAdo3sdBaYPGEXtB-eE--z_1YeC3xlcgb9NAkJfrDfolpG3CRW4aTSSQqSnIBH_6rqaY7uPluKBi15RWfP4hTbWd8UIW8rwxvl290KDzwPY8qMuTfIK99n4lujpMVZ6a255nIdCsAsIgZEhtbrK7IUU64OxO6sAvCHKgOdcK0st5M9iW89opYfj4vapOQl8Whr27NIVMeKmuhRJEcG35ui4pAzfiRWkW9LpCKQf99gM3rNtGmBjEDxWIIgkI87pfsoRMZ4nmlqW3o77QWSNScGX8dKOxt5UTIQXVfQs4Wy3RdDAOZQkrcdnQYNYh0RHY6zsjmmxNCEKI8JcvwLY9g93YjbU_wV3guJXtbCzDMxMZwny9bPnQ2wKMABKG2tq7ehPq8kpkOHxeZJ5VMuc_83z9YFWJeZm3Y51kLLlEM3IPK1lXXZRRz1pVgQlaCzknLiUMIYW4ESJlwfV74Z4LfKN9eEEArSuAW0Gi4bYUi8ZdUV_HCxgi80NY25U8We2uOUdNWTkXnCzZaQT97rPr0dX1fadVcP5hcD174CGBUmQBWeipmXcCC07RU6t4C24IMygRh1iDahXN_N3g1D5fy9DGrYpZpPpD-0pYeHmCy0dEl9zy3TIvLzo7MPdVG1X0KJkQGXcbPG9QsKXImrynMY_cIyhvSfvpNeQuw5p0lrSa_T016688_CgL3AjHR369ziGQyi9IJzd1fjl9iT9PC68wrW5P09JuZY5koaf5smREHxA_gJ5vBvpuwGqQv5A82Nnyu080fVlSCnctIHJGMS36hWw4K2luM4YCrn7xuVHnQ4UHIpQuTSGH8BT6W_1tJXRa-6uhgUmy9ieqEiSn-x9t1_fluXDVP6MbfouAy2Ksr1BEHKadeXQ6zclY9ETgbM0LxGiS5DbMpIPsTt_ijvu6B2JFcKKmECrj_6pUX3otR68rD2W_rWXF9CkiZA1x7jr7nQpPBuc5QNJjZXqCVaWdkPSUpG5dIynoOgyP1UqXnWDv8LNfUlvM01LlaUlpkhruBxcRtaarhThhhCr890S7cyR6WEnLdmMy58MlIpTuRhc9LEF-73kkAje_aq4IDQBCEZS2OziNEj-kxdYxnULZv9PuGw_m9A5I-a6j8ree1qjUaNc3rMQwmQdmF7P2U1_sKFdBsY85f4pQ82447yKBkMa88uuqwzkLPaph419lbpki9fEJCd8GRkXe8rszKbwnCgYcB_ovpjwtWo_8u91N7K7vqXBbVoQ_5829eBy2CXlnb4GKX007VIU7bJtA4YQNMgNuWbEpLJIO1uiQKgspStXZd6f7XmDgjAJNRf6pA85yxG1joq7C7NyBKh1zbgSMx-Ej4yAHnuM-TsSFucGP-648sloNPZ-_51T6EO1NOxgH4JOjQUnXFrQuIL-TL_km6MqQlflhJXBn4wSkAB80obPORqnVRjjabtXMXqVdiddfr6gd5ulb2Khn9nhP0ygBirx9f3fSe4cSiJB5ZK-XMYD6Eo74A3QTO6ciz8h9b7az3trQMP_FZev8jdFT7zaq2cNF3IeWsd1DuIFOFk9DouyJGeiwMsGFMsjGfGeklKlne2bzZqhL-MrlFIB4HKrFobiPccnaBM5ybiMtycJn5Hj03ZfazueIuQd_usrpgkOiQJ_I45Xm8g-dbhfVkXYSn66m0kZMhu_VOaTLSdM4ExjPJkUPMEi08qr4qC7V2AB4tcMg23hP4Gcn5VFaDx3qvwsxVHSYJtfe6muzoYc3rJ5gbP1dqscz7MbYZMv4DAWIhNU7nuUpjSw0azyNkp2PoNEedA2uF9WM2M_kr4tZcBdq1LpNs87zVHjhGuOQglCr3cUYFsoN1lFhlIphr1l0dOuz_N43GdXMiywv1L2XuDZWnckAkQFTXXWqfC-zV1Xh301DRSHVKw7PLI9yGFVoHUvds3zYS0bLcvO3aY72ZyUynEdmJqLhTX0lPkDxoxHgFKtrt8BaCi-EIcwNf-Am1QtOBV0xqmBL-aXAMLkPBfwz9E6N6p5onsUWDNSYWuO2DskmG_STwagkG9GRqzJVF6RJVt3pOQQCKJiz4_2QXqZeYRBizAFjEGKb9wUrRIjgUFPnRyVMAGi3iI3fFXiV012z1e-I9COTcOGrmFBzavxiRp1bYB3veLbn2lFPnlLdVR7VVb7NYzS28q0wGLf8GBI3455Vfv_uUUI5us-0RzdtF8ZMfWb745jsRhpfgiNv38vN9rZTgKJYAYd8vlBC35H-tqAnzTlzuQDxHYJVhJWzO-LVl-ActwJNmSXlOFrxPIvYALmcScOs0WAnOXeBafzxfVjJeRaNXW33pIaIHwgSYpq_Q6yaxVQJsQxb4EzUzWNzZrvKTAJccjVes69L5N9naXNGHfkv3Mt1YWJ0Nib5KCqzu-AXViDLs0w_I5OSy3jFMNJYDwyaTlpVZdVTWmYM3-FIZFs1c0kxXTeaxymMB3Ze4gTvUqMhsO8AHlI9ZLLG_S9OyUlMt7ZLFUTSom_3lp3Caf1_l4t0zRnbZtSed_Zh_bT",cRq: {ru: 'aHR0cHM6Ly9idWxiYXBlZGlhLmJ1bGJhZ2FyZGVuLm5ldC93L2FwaS5waHA/YWN0aW9uPXF1ZXJ5Jm1ldGE9c2l0ZWluZm8lN0N1c2VyaW5mbyZzaXByb3A9bmFtZXNwYWNlcyU3Q25hbWVzcGFjZWFsaWFzZXMlN0NnZW5lcmFsJnVpcHJvcD1ibG9ja2luZm8lN0NoYXNtc2cmbWF4bGFnPTUmZm9ybWF0PWpzb24=',ra: 'bGlua190ZXN0cyAoYnVsYmE6YnVsYmEpIFB5d2lraWJvdC85LjAuMC5kZXYwIChnMTgzNjcpIHJlcXVlc3RzLzIuMjcuMSBQeXRob24vMy4xMS4wLmZpbmFsLjA=',rm: 'R0VU',d: 'fFG00U6RwoTMRCU2y0WXX2DWds0aBYmNM+yHg12Wlt1QQevDIQE5VPWIJAtMG9En5btd0wlRXda9U6ala5Ez9WBadoIntJyu3yC21SsRu2DzDA3SSVM1w/kLVjJjvHRbwwnibmBKsmbn71bzMeWqBAMBpfpPOikD5UfraBdjqYm0F4Qv3EkrvVfcIQRS0YHdn+mihLS5+CwnPg5yDPBdERudXIbmV5zvOQL01mo3jvJtb1TC8KhiONeQsNbQXEoN0Va3ZkftxKgT0HdEYZ2ded8B7OQDNpTjUd/l/0SQz1+/ONm34DPLgCqyvhGz2bWMX4dFzfY/stul9g40LuoRG6g+Z57XS789Vj8ySUNAHSY0qwMvdgIwkBuu/8rxTYXZfbBb6d0yxaaMxMaL0iFzKcbQAzj45n04gQl4ADqSGW1kXDmiAnhpqCHQOxATHsQ7B3ZxUl7RT595aMM7jpsmnYRv2BAR3TpcJ46ybRzDYB3gL7ACOvdxM0l8Fa1S71c3fAVPNnjPYoHMqGpjVSvqAhhtwXttty0PpffmYjmUmvU=',t: 'MTcwNDcyNzUzNi43NjkwMDA=',cT: Math.floor(Date.now() / 1000),m: '2M9jUZXJptusej2gLBvg3AiwEIj/JIHvtWu2PSWMRWE=',i1: 'jz/EGfJmkd9NN5pDkAfnsw==',i2: '1gXD9t1+dWBRi8dTBQPc9Q==',zh: 'lvn68ryTvM7/KKmm1ALwPTG+ezoSoggBcFhReWJ3rd4=',uh: 'OWZuXLBvZTS6X39mUk01P4fjx3jwqsfZ8epwLqB3M4Y=',hh: 'qNfFV/Z+B6QZ1cIV4cQ5fuse8PEbSPrc+iRKwVK3Clw=',}};var cpo = document.createElement('script');cpo.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=84257440ce496674';window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, location.href.length - window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;if (window.history && window.history.replaceState) {var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;history.replaceState(null, null, "\/w\/api.php?action=query&meta=siteinfo%7Cuserinfo&siprop=namespaces%7Cnamespacealiases%7Cgeneral&uiprop=blockinfo%7Chasmsg&maxlag=5&format=json&__cf_chl_rt_tk=_IUfnb_MNE7ywqvW_P5FOylYE26b13841wP3bWRsIoE-1704727536-0-gaNycGzNDGU" + window._cf_chl_opt.cOgUHash);cpo.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(cpo);}());</script></body></html>: 0

Therefore creating AutoFamily fails.

The failing response is:

======================================================================
ERROR: test_other_wiki_prefix (tests.link_tests.TestForeignInterwikiLinks)
Test that Link fails if the interwiki prefix is a unknown family.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/models.py", line 971, in json
    return complexjson.loads(self.text, **kwargs)
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/data/api/_requests.py", line 725, in _json_loads
    result = response.json()
  File "/opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/requests/models.py", line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/runner/work/pywikibot/pywikibot/tests/link_tests.py", line 883, in test_other_wiki_prefix
    self.assertEqual(link.title, 'Title on auto-generated Site')
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/page/_links.py", line 520, in title
    self.parse()
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/page/_links.py", line 487, in parse
    elif self._site.namespaces[self._namespace].case == 'first-letter':
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/tools/__init__.py", line 754, in wrapper
    val = fn(obj)
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_basesite.py", line 254, in namespaces
    return NamespacesDict(self._build_namespaces())
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_apisite.py", line 1177, in _build_namespaces
    for nsdata in self.siteinfo.get('namespaces', cache=False).values():
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_siteinfo.py", line 273, in get
    preloaded = self._get_general(key, expiry)
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_siteinfo.py", line 211, in _get_general
    default_info = self._get_siteinfo(props, expiry)
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/site/_siteinfo.py", line 136, in _get_siteinfo
    data = request.submit()
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/data/api/_requests.py", line 1251, in submit
    self._data = super().submit()
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/data/api/_requests.py", line 980, in submit
    result = self._json_loads(response)
  File "/home/runner/work/pywikibot/pywikibot/pywikibot/data/api/_requests.py", line 747, in _json_loads
    raise SiteDefinitionError(
pywikibot.exceptions.SiteDefinitionError: Invalid AutoFamily('bulbapedia.bulbagarden.net')

----------------------------------------------------------------------

https://github.com/wikimedia/pywikibot/actions/runs/7445056471/job/20252584651

Event Timeline

Xqt triaged this task as High priority.Jan 8 2024, 3:48 PM

Change 988662 had a related patch set uploaded (by Xqt; author: Xqt):

[pywikibot/core@master] fix test for bulba:bulba wiki

https://gerrit.wikimedia.org/r/988662

test fails on Appveyor and github but works on jenkins CI

Change 988662 merged by Xqt:

[pywikibot/core@master] fix test for bulba:bulba wiki

https://gerrit.wikimedia.org/r/988662