Commit 66d88aa removed our test.wikipedia.org family. I'm unsure why we did that, so I ran generate_family_file.py to safely run our scripts against without breaking live pages. Unfortunately doing so breaks our tests.
Here's my family config...
```
% cat pywikibot/families/test_family.py
"""
This family file was auto-generated by generate_family_file.py script.
Configuration parameters:
url = https://test.wikipedia.org/
name = test
Please do not commit this to the Git repository!
"""
from pywikibot import family
class Family(family.Family): # noqa: D101
name = 'test'
langs = {
'en': 'test.wikipedia.org',
}
def scriptpath(self, code):
return {
'en': '/w',
}[code]
def protocol(self, code):
return {
'en': 'https',
}[code]
```
And here's the test failures...
```
% time python -m unittest
...
======================================================================
ERROR: test_preload_langlinks_count (tests.site_tests.TestPagePreloading)
Test preloading continuation works.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python3.8/unittest/mock.py", line 1325, in patched
return func(*newargs, **newkeywargs)
File "/home/atagar/Desktop/pywikibot/tests/site_tests.py", line 3144, in test_preload_langlinks_count
pages = list(gen)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_generators.py", line 195, in preloadpages
api.update_page(page, pagedata, rvgen.props)
File "/home/atagar/Desktop/pywikibot/pywikibot/data/api.py", line 3145, in update_page
_update_langlinks(page, pagedict['langlinks'])
File "/home/atagar/Desktop/pywikibot/pywikibot/data/api.py", line 3069, in _update_langlinks
links = [pywikibot.Link.langlinkUnsafe(link['lang'], link['*'],
File "/home/atagar/Desktop/pywikibot/pywikibot/data/api.py", line 3069, in <listcomp>
links = [pywikibot.Link.langlinkUnsafe(link['lang'], link['*'],
File "/home/atagar/Desktop/pywikibot/pywikibot/page/__init__.py", line 5610, in langlinkUnsafe
link._site = pywikibot.Site(lang, source.family.name)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 404, in wrapper
return obj(*__args, **__kw)
File "/home/atagar/Desktop/pywikibot/pywikibot/__init__.py", line 1207, in Site
_sites[key] = interface(code=code, fam=fam, user=user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_apisite.py", line 115, in __init__
super().__init__(code, fam, user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_basesite.py", line 90, in __init__
raise UnknownSiteError(error_msg)
pywikibot.exceptions.UnknownSiteError: Language 'af' does not exist in family test
======================================================================
ERROR: test_preload_langlinks_normal (tests.site_tests.TestPagePreloading)
Test preloading langlinks works.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/site_tests.py", line 3123, in test_preload_langlinks_normal
for count, page in enumerate(gen):
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_generators.py", line 195, in preloadpages
api.update_page(page, pagedata, rvgen.props)
File "/home/atagar/Desktop/pywikibot/pywikibot/data/api.py", line 3145, in update_page
_update_langlinks(page, pagedict['langlinks'])
File "/home/atagar/Desktop/pywikibot/pywikibot/data/api.py", line 3069, in _update_langlinks
links = [pywikibot.Link.langlinkUnsafe(link['lang'], link['*'],
File "/home/atagar/Desktop/pywikibot/pywikibot/data/api.py", line 3069, in <listcomp>
links = [pywikibot.Link.langlinkUnsafe(link['lang'], link['*'],
File "/home/atagar/Desktop/pywikibot/pywikibot/page/__init__.py", line 5610, in langlinkUnsafe
link._site = pywikibot.Site(lang, source.family.name)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 404, in wrapper
return obj(*__args, **__kw)
File "/home/atagar/Desktop/pywikibot/pywikibot/__init__.py", line 1207, in Site
_sites[key] = interface(code=code, fam=fam, user=user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_apisite.py", line 115, in __init__
super().__init__(code, fam, user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_basesite.py", line 90, in __init__
raise UnknownSiteError(error_msg)
pywikibot.exceptions.UnknownSiteError: Language 'af' does not exist in family test
======================================================================
ERROR: test_allpages_langlinks_enabled (tests.site_tests.TestSiteGenerators)
Test allpages with langlinks enabled.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/site_tests.py", line 517, in test_allpages_langlinks_enabled
self.assertNotEqual(page.langlinks(), [])
File "/home/atagar/Desktop/pywikibot/pywikibot/page/__init__.py", line 1448, in langlinks
self._langlinks = list(self.iterlanglinks(include_obsolete=True))
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_generators.py", line 759, in pagelanglinks
link = pywikibot.Link.langlinkUnsafe(linkdata['lang'],
File "/home/atagar/Desktop/pywikibot/pywikibot/page/__init__.py", line 5610, in langlinkUnsafe
link._site = pywikibot.Site(lang, source.family.name)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 404, in wrapper
return obj(*__args, **__kw)
File "/home/atagar/Desktop/pywikibot/pywikibot/__init__.py", line 1207, in Site
_sites[key] = interface(code=code, fam=fam, user=user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_apisite.py", line 115, in __init__
super().__init__(code, fam, user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_basesite.py", line 90, in __init__
raise UnknownSiteError(error_msg)
pywikibot.exceptions.UnknownSiteError: Language 'af' does not exist in family test
======================================================================
ERROR: test_pagelanglinks (tests.site_tests.TestSiteGenerators)
Test Site.pagelanglinks.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/site_tests.py", line 427, in test_pagelanglinks
for ll in self.site.pagelanglinks(self.mainpage):
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_generators.py", line 759, in pagelanglinks
link = pywikibot.Link.langlinkUnsafe(linkdata['lang'],
File "/home/atagar/Desktop/pywikibot/pywikibot/page/__init__.py", line 5610, in langlinkUnsafe
link._site = pywikibot.Site(lang, source.family.name)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 404, in wrapper
return obj(*__args, **__kw)
File "/home/atagar/Desktop/pywikibot/pywikibot/__init__.py", line 1207, in Site
_sites[key] = interface(code=code, fam=fam, user=user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_apisite.py", line 115, in __init__
super().__init__(code, fam, user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_basesite.py", line 90, in __init__
raise UnknownSiteError(error_msg)
pywikibot.exceptions.UnknownSiteError: Language 'af' does not exist in family test
======================================================================
ERROR: testLinks (tests.page_tests.TestPageObject)
Test the different types of links from a page.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/page_tests.py", line 541, in testLinks
for p in mainpage.langlinks():
File "/home/atagar/Desktop/pywikibot/pywikibot/page/__init__.py", line 1448, in langlinks
self._langlinks = list(self.iterlanglinks(include_obsolete=True))
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_generators.py", line 759, in pagelanglinks
link = pywikibot.Link.langlinkUnsafe(linkdata['lang'],
File "/home/atagar/Desktop/pywikibot/pywikibot/page/__init__.py", line 5610, in langlinkUnsafe
link._site = pywikibot.Site(lang, source.family.name)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 404, in wrapper
return obj(*__args, **__kw)
File "/home/atagar/Desktop/pywikibot/pywikibot/__init__.py", line 1207, in Site
_sites[key] = interface(code=code, fam=fam, user=user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_apisite.py", line 115, in __init__
super().__init__(code, fam, user)
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/_deprecate.py", line 487, in wrapper
return obj(*new_args, **new_kwargs)
File "/home/atagar/Desktop/pywikibot/pywikibot/site/_basesite.py", line 90, in __init__
raise UnknownSiteError(error_msg)
pywikibot.exceptions.UnknownSiteError: Language 'af' does not exist in family test
======================================================================
FAIL: test_search_where_title (tests.site_tests.SearchTestCase)
Test site.search() method with 'where' parameter set to title.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/pywikibot/tools/__init__.py", line 196, in suppressed_func
return func(*args, **kwargs)
File "/home/atagar/Desktop/pywikibot/tests/site_tests.py", line 1459, in test_search_where_title
self.assertEqual(search_gen.request._params, expected_params)
AssertionError: {'gsrsearch': ['wiki'], 'gsrwhat': ['title'[280 chars] [0]} != {'prop': ['info', 'imageinfo', 'categoryinf[285 chars]one]}
{'action': ['query'],
'continue': [True],
'generator': ['search'],
'gsrnamespace': [0],
- 'gsrsearch': ['wiki'],
+ 'gsrsearch': ['intitle:wiki'],
? ++++++++
- 'gsrwhat': ['title'],
? ^^^^^ -
+ 'gsrwhat': [None],
? ^^^
'iilimit': ['max'],
'iiprop': ['timestamp', 'user', 'comment', 'url', 'size', 'sha1', 'metadata'],
'indexpageids': [True],
'inprop': ['protection'],
'prop': ['info', 'imageinfo', 'categoryinfo']}
======================================================================
FAIL: test_basic (tests.site_tests.TestAlldeletedrevisionsAsUser)
Test the site.alldeletedrevisions() method.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/site_tests.py", line 1616, in test_basic
self.assertTrue(all('revisions' in data
AssertionError: False is not true
======================================================================
FAIL: test_constructors (tests.site_tests.TestSiteObject) (dbname='testwiki')
Test cases for site constructors.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/site_tests.py", line 128, in test_constructors
self.assertIs(
AssertionError: APISite("en", "test") is not APISite("test", "wikipedia")
======================================================================
FAIL: test_each_family (tests.family_tests.TestFamilyUrlRegex) (family='test')
Test each family builds a working regex.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/family_tests.py", line 235, in test_each_family
self.assertEqual(family.from_url(url), code)
File "/home/atagar/Desktop/pywikibot/pywikibot/family.py", line 864, in from_url
site = pywikibot.Site(code, self.name)
File "/home/atagar/Desktop/pywikibot/tests/family_tests.py", line 161, in Site
self.assertEqual(fam, 'wikipedia')
AssertionError: 'test' != 'wikipedia'
- test
+ wikipedia
======================================================================
FAIL: test_fully_qualified_NS0_family (tests.link_tests.TestFullyQualifiedNoLangFamilyExplicitLinkParser)
Test ':wikidata:testwiki:Q6' on enwp is namespace 0.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/link_tests.py", line 540, in test_fully_qualified_NS0_family
self.assertEqual(link.site, self.get_site('test.wp'))
AssertionError: APISite("en", "test") != APISite("test", "wikipedia")
======================================================================
FAIL: test_fully_qualified_NS1_family (tests.link_tests.TestFullyQualifiedNoLangFamilyExplicitLinkParser)
Test ':wikidata:testwiki:Talk:Q6' on enwp is namespace 1.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/link_tests.py", line 548, in test_fully_qualified_NS1_family
self.assertEqual(link.site, self.get_site('test.wp'))
AssertionError: APISite("en", "test") != APISite("test", "wikipedia")
======================================================================
FAIL: test_fully_qualified_NS0 (tests.link_tests.TestFullyQualifiedNoLangFamilyImplicitLinkParser) (pattern='wikidata:testwiki')
Test prefixed links with 'Q6' on enwp is namespace 0.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/link_tests.py", line 804, in test_fully_qualified_NS0
self.assertEqual(link.site, pywikibot.Site(sitetitle))
AssertionError: APISite("en", "test") != APISite("test", "wikipedia")
======================================================================
FAIL: test_fully_qualified_NS1 (tests.link_tests.TestFullyQualifiedNoLangFamilyImplicitLinkParser) (pattern='wikidata:testwiki')
Test prefixed links with 'Talk:Q6' on enwp is namespace 1.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/atagar/Desktop/pywikibot/tests/link_tests.py", line 816, in test_fully_qualified_NS1
self.assertEqual(link.site, pywikibot.Site(sitetitle))
AssertionError: APISite("en", "test") != APISite("test", "wikipedia")
----------------------------------------------------------------------
Ran 1771 tests in 630.414s
FAILED (failures=8, errors=5, skipped=107, expected failures=10, unexpected successes=1)
real 10m31.700s
user 2m20.211s
sys 0m12.341s
```
Tests should not rely on the user's local configuration. I have fixes for a few of these but quite yet for all of 'em.