____________________ TestSiteGenerators.test_pagelanglinks _____________________
self = <tests.site_tests.TestSiteGenerators testMethod=test_pagelanglinks>
def test_pagelanglinks(self):
"""Test Site.pagelanglinks."""
> for ll in self.site.pagelanglinks(self.mainpage):
tests/site_tests.py:427:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pywikibot/site/_generators.py:761: in pagelanglinks
source=self)
pywikibot/page/__init__.py:5593: in langlinkUnsafe
link._site = pywikibot.Site(lang, source.family.name)
pywikibot/tools/_deprecate.py:404: in wrapper
return obj(*__args, **__kw)
pywikibot/__init__.py:1201: in Site
_sites[key] = interface(code=code, fam=fam, user=user)
pywikibot/tools/_deprecate.py:487: in wrapper
return obj(*new_args, **new_kwargs)
pywikibot/site/_apisite.py:115: in __init__
super().__init__(code, fam, user)
pywikibot/tools/_deprecate.py:487: in wrapper
return obj(*new_args, **new_kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = APISite("es", "wpbeta"), code = 'es', fam = Family("wpbeta"), user = None
@remove_last_args(['sysop'])
def __init__(self, code: str, fam=None, user=None) -> None:
"""
Initializer.
:param code: the site's language code
:type code: str
:param fam: wiki family name (optional)
:type fam: str or pywikibot.family.Family
:param user: bot user name (optional)
:type user: str
"""
if code.lower() != code:
# Note the Site function in __init__ also emits a UserWarning
# for this condition, showing the callers file and line no.
pywikibot.log('BaseSite: code "{}" converted to lowercase'
.format(code))
code = code.lower()
if not all(x in pywikibot.family.CODE_CHARACTERS for x in code):
pywikibot.log('BaseSite: code "{}" contains invalid characters'
.format(code))
self.__code = code
if isinstance(fam, str) or fam is None:
self.__family = pywikibot.family.Family.load(fam)
else:
self.__family = fam
self.obsolete = False
# if we got an outdated language code, use the new one instead.
if self.__code in self.__family.obsolete:
if self.__family.obsolete[self.__code] is not None:
self.__code = self.__family.obsolete[self.__code]
# Note the Site function in __init__ emits a UserWarning
# for this condition, showing the callers file and line no.
pywikibot.log('Site {} instantiated using aliases code of {}'
.format(self, code))
else:
# no such language anymore
self.obsolete = True
pywikibot.log('Site {} instantiated and marked "obsolete" '
'to prevent access'.format(self))
elif self.__code not in self.languages():
if self.__family.name in self.__family.langs \
and len(self.__family.langs) == 1:
self.__code = self.__family.name
if self.__family == pywikibot.config.family \
and code == pywikibot.config.mylang:
pywikibot.config.mylang = self.__code
warn('Global configuration variable "mylang" changed to '
'"{}" while instantiating site {}'
.format(self.__code, self), UserWarning)
else:
error_msg = ("Language '{}' does not exist in family {}"
.format(self.__code, self.__family.name))
> raise UnknownSiteError(error_msg)
E pywikibot.exceptions.UnknownSiteError: Language 'es' does not exist in family wpbeta
pywikibot/site/_basesite.py:90: UnknownSiteErrorDescription
Description
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Open | None | T286117 TestSiteGenerators.test_pagelanglinks fails due to missing wpbeta:es site | |||
| Resolved | BUG REPORT | Jdlrobson | T286040 "InvalidArgumentException: $key must be a string or an array" on beta login and vote wikis |