See https://travis-ci.org/wikimedia/pywikibot/jobs/514032926
see also: https://api.travis-ci.org/v3/job/517082653/log.txt
=================================== FAILURES ===================================
_______________ TestFactoryGenerator.test_recentchanges_default ________________
self = <tests.pagegenerators_tests.TestFactoryGenerator testMethod=test_recentchanges_default>
def test_recentchanges_default(self):
"""Test recentchanges generator with default setting."""
gf = pagegenerators.GeneratorFactory(site=self.site)
gf.handleArg('-recentchanges:60')
gen = gf.getCombinedGenerator()
self.assertIsNotNone(gen)
> self.assertPagesInNamespacesAll(gen, {0, 1, 2}, skip=True)
tests/pagegenerators_tests.py:1014:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/aspects.py:252: in assertPagesInNamespacesAll
page_namespaces = [page.namespace() for page in gen]
tests/aspects.py:252: in <listcomp>
page_namespaces = [page.namespace() for page in gen]
pywikibot/tools/__init__.py:1161: in filter_unique
if (key(item) if key else item) not in container:
pywikibot/pagegenerators.py:422: in <lambda>
filter_unique, key=lambda page: '{}:{}:{}'.format(*page._cmpkey()))
pywikibot/page.py:413: in _cmpkey
return (self.site, self.namespace(), self.title())
pywikibot/page.py:220: in site
return self._link.site
pywikibot/page.py:5755: in site
self.parse()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <[InvalidTitle("'User:#11' has no title.") raised in repr()] Link object at 0x7f601f32b278>
def parse(self):
"""
Parse wikitext of the link.
Called internally when accessing attributes.
"""
self._site = self._source
self._namespace = self._defaultns
self._is_interwiki = False
ns_prefix = False
old_position = int(self._text.startswith(':'))
colon_position = self._text.find(':', old_position)
first_other_site = None
while colon_position >= 0:
prefix = self._text[old_position:colon_position].lower()
# All spaces after a prefix are discarded
colon_position += 1
while (len(self._text) > colon_position
and self._text[colon_position] == ' '):
colon_position += 1
ns = self._site.namespaces.lookup_name(prefix)
if ns:
if len(self._text) <= colon_position:
raise pywikibot.InvalidTitle(
"'{0}' has no title.".format(self._text))
self._namespace = ns
ns_prefix = True
old_position = colon_position
break
try:
newsite = self._site.interwiki(prefix)
except KeyError:
break # text before : doesn't match any known prefix
except SiteDefinitionError as e:
raise SiteDefinitionError(
'{0} is not a local page on {1}, and the interwiki '
'prefix {2} is not supported by Pywikibot!\n{3}'
.format(self._text, self._site, prefix, e))
else:
if first_other_site:
if not self._site.local_interwiki(prefix):
raise pywikibot.InvalidTitle(
'{0} links to a non local site {1} via an '
'interwiki link to {2}.'.format(
self._text, newsite, first_other_site))
elif newsite != self._source:
first_other_site = newsite
self._site = newsite
self._is_interwiki = True
old_position = colon_position
colon_position = self._text.find(':', old_position)
# Remove any namespaces/interwiki prefixes
t = self._text[old_position:]
if '#' in t:
t, sec = t.split('#', 1)
t, self._section = t.rstrip(), sec.lstrip()
else:
self._section = None
if ns_prefix:
# 'namespace:' is not a valid title
if not t:
raise pywikibot.InvalidTitle(
> "'{0}' has no title.".format(self._text))
E pywikibot.exceptions.InvalidTitle: 'User:#11' has no title.
pywikibot/page.py:5694: InvalidTitle
______________ TestFactoryGenerator.test_recentchanges_ns_default ______________
self = <tests.pagegenerators_tests.TestFactoryGenerator testMethod=test_recentchanges_ns_default>
def test_recentchanges_ns_default(self):
"""Test recentchanges generator."""
gf = pagegenerators.GeneratorFactory(site=self.site)
gf.handleArg('-recentchanges:50')
gen = gf.getCombinedGenerator()
self.assertIsNotNone(gen)
> self.assertPagesInNamespacesAll(gen, {0, 1, 2}, skip=True)
tests/pagegenerators_tests.py:1030:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/aspects.py:252: in assertPagesInNamespacesAll
page_namespaces = [page.namespace() for page in gen]
tests/aspects.py:252: in <listcomp>
page_namespaces = [page.namespace() for page in gen]
pywikibot/tools/__init__.py:1161: in filter_unique
if (key(item) if key else item) not in container:
pywikibot/pagegenerators.py:422: in <lambda>
filter_unique, key=lambda page: '{}:{}:{}'.format(*page._cmpkey()))
pywikibot/page.py:413: in _cmpkey
return (self.site, self.namespace(), self.title())
pywikibot/page.py:220: in site
return self._link.site
pywikibot/page.py:5755: in site
self.parse()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <[InvalidTitle("'User:#11' has no title.") raised in repr()] Link object at 0x7f601f1e3d30>
def parse(self):
"""
Parse wikitext of the link.
Called internally when accessing attributes.
"""
self._site = self._source
self._namespace = self._defaultns
self._is_interwiki = False
ns_prefix = False
old_position = int(self._text.startswith(':'))
colon_position = self._text.find(':', old_position)
first_other_site = None
while colon_position >= 0:
prefix = self._text[old_position:colon_position].lower()
# All spaces after a prefix are discarded
colon_position += 1
while (len(self._text) > colon_position
and self._text[colon_position] == ' '):
colon_position += 1
ns = self._site.namespaces.lookup_name(prefix)
if ns:
if len(self._text) <= colon_position:
raise pywikibot.InvalidTitle(
"'{0}' has no title.".format(self._text))
self._namespace = ns
ns_prefix = True
old_position = colon_position
break
try:
newsite = self._site.interwiki(prefix)
except KeyError:
break # text before : doesn't match any known prefix
except SiteDefinitionError as e:
raise SiteDefinitionError(
'{0} is not a local page on {1}, and the interwiki '
'prefix {2} is not supported by Pywikibot!\n{3}'
.format(self._text, self._site, prefix, e))
else:
if first_other_site:
if not self._site.local_interwiki(prefix):
raise pywikibot.InvalidTitle(
'{0} links to a non local site {1} via an '
'interwiki link to {2}.'.format(
self._text, newsite, first_other_site))
elif newsite != self._source:
first_other_site = newsite
self._site = newsite
self._is_interwiki = True
old_position = colon_position
colon_position = self._text.find(':', old_position)
# Remove any namespaces/interwiki prefixes
t = self._text[old_position:]
if '#' in t:
t, sec = t.split('#', 1)
t, self._section = t.rstrip(), sec.lstrip()
else:
self._section = None
if ns_prefix:
# 'namespace:' is not a valid title
if not t:
raise pywikibot.InvalidTitle(
> "'{0}' has no title.".format(self._text))
E pywikibot.exceptions.InvalidTitle: 'User:#11' has no title.
pywikibot/page.py:5694: InvalidTitleSee also T195730