jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/503764 )
Change subject: [bugfix] Update lyricwiki_family.py
......................................................................
[bugfix] Update lyricwiki_family.py
- lyricwiki has been moved to
fandom.com domain and has a new subdomain "ru".
Derive it from SubdomainFamily instead of SingleSiteFamily
- update scriptpath, version, protocol methods and langs class property
- test lyricwiki_family.py in new TestSubdomainFamilySite
- use omegawiki_family.py as second SingleCodeFamily for tests
- update protocol and ignore_certificate_error of omegawiki_family.py
because https call does not work properly
Bug: T220908
Change-Id: I921c309bfc3117f6dd2adcf8bb2816b9d9cf25d4
---
M pywikibot/families/lyricwiki_family.py
M pywikibot/families/omegawiki_family.py
M tests/family_tests.py
M tests/site_tests.py
4 files changed, 60 insertions(+), 29 deletions(-)
Approvals:
D3r1ck01: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/families/lyricwiki_family.py
b/pywikibot/families/lyricwiki_family.py
index c60ded6..1819b3a 100644
--- a/pywikibot/families/lyricwiki_family.py
+++ b/pywikibot/families/lyricwiki_family.py
@@ -1,23 +1,41 @@
# -*- coding: utf-8 -*-
"""Family module for LyricWiki."""
#
-# (C) Pywikibot team, 2007-2018
+# (C) Pywikibot team, 2007-2019
#
# Distributed under the terms of the MIT license.
#
from __future__ import absolute_import, division, unicode_literals
from pywikibot import family
+from pywikibot.tools import classproperty, deprecated
# The LyricWiki family
# user-config.py:
# usernames['lyricwiki']['en'] = 'user'
-class Family(family.SingleSiteFamily, family.WikiaFamily):
+class Family(family.SubdomainFamily, family.WikiaFamily):
"""Family class for LyricWiki."""
name = 'lyricwiki'
- code = 'en'
- domain = 'lyrics.wikia.com'
+ domain = 'lyrics.fandom.com'
+ codes = ('en', 'ru')
+
+ def scriptpath(self, code):
+ """Return the script path for this family."""
+ return '' if code == 'en' else ('/' + code)
+
+ @deprecated('APISite.version()', since='20141225')
+ def version(self, code):
+ return '1.19.24'
+
+ def protocol(self, code):
+ """Return 'https' as the protocol."""
+ return 'https'
+
+ @classproperty
+ def langs(cls):
+ """Property listing family languages."""
+ return {code: cls.domain for code in cls.codes}
diff --git a/pywikibot/families/omegawiki_family.py
b/pywikibot/families/omegawiki_family.py
index 10fae56..5ceabf0 100644
--- a/pywikibot/families/omegawiki_family.py
+++ b/pywikibot/families/omegawiki_family.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
"""Family module for Omega Wiki."""
#
-# (C) Pywikibot team, 2006-2018
+# (C) Pywikibot team, 2006-2019
#
# Distributed under the terms of the MIT license.
#
@@ -25,11 +25,3 @@
def scriptpath(self, code):
"""Return the script path for this family."""
return ''
-
- def protocol(self, code):
- """Return https as the protocol for this
family."""
- return 'https'
-
- def ignore_certificate_error(self, code):
- """Ignore certificate errors."""
- return True # has an expired certificate.
diff --git a/tests/family_tests.py b/tests/family_tests.py
index b698e83..e529066 100644
--- a/tests/family_tests.py
+++ b/tests/family_tests.py
@@ -237,9 +237,10 @@
def test_each_family(self):
"""Test each family builds a working regex."""
for family in pywikibot.config.family_files:
- if family == 'wowwiki':
+ if family in ('wowwiki', 'lyricwiki'):
self.skipTest(
- 'Family.from_url() does not work for wowwiki (T215077)')
+ 'Family.from_url() does not work for {} (T215077)'
+ .format(family))
self.current_family = family
family = Family.load(family)
for code in family.codes:
diff --git a/tests/site_tests.py b/tests/site_tests.py
index f9ef079..d6de733 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -3451,22 +3451,23 @@
'family': 'wikia',
'code': 'wikia',
},
- 'lyricwiki': {
- 'family': 'lyricwiki',
- 'code': 'en',
+ 'omegawiki': {
+ 'family': 'omegawiki',
+ 'code': 'omegawiki',
},
}
def test_wikia(self):
"""Test
www.wikia.com."""
+ url = 'www.wikia.com'
site = self.get_site('wikia')
- self.assertEqual(site.hostname(), 'www.wikia.com')
+ self.assertEqual(site.hostname(), url)
self.assertEqual(site.code, 'wikia')
self.assertIsInstance(site.namespaces, Mapping)
self.assertFalse(site.obsolete)
- self.assertEqual(site.family.hostname('en'), 'www.wikia.com')
- self.assertEqual(site.family.hostname('wikia'), 'www.wikia.com')
- self.assertEqual(site.family.hostname('www'), 'www.wikia.com')
+ self.assertEqual(site.family.hostname('en'), url)
+ self.assertEqual(site.family.hostname('wikia'), url)
+ self.assertEqual(site.family.hostname('www'), url)
pywikibot.config.family = 'wikia'
pywikibot.config.mylang = 'de'
@@ -3490,21 +3491,40 @@
# When the code is the same as config.mylang, Site() changes mylang
self.assertEqual(pywikibot.config.mylang, 'wikia')
+ def test_omega(self):
+ """Test
www.omegawiki.org."""
+ url = 'www.omegawiki.org'
+ site = self.get_site('omegawiki')
+ self.assertEqual(site.hostname(), url)
+ self.assertEqual(site.code, 'omegawiki')
+ self.assertIsInstance(site.namespaces, Mapping)
+ self.assertFalse(site.obsolete)
+ self.assertEqual(site.family.hostname('en'), url)
+ self.assertEqual(site.family.hostname('omega'), url)
+ self.assertEqual(site.family.hostname('omegawiki'), url)
+
+
+class TestSubdomainFamilySite(TestCase):
+
+ """Test subdomain family site."""
+
+ code = 'en'
+ family = 'lyricwiki'
+
def test_lyrics(self):
"""Test lyrics.wikia.com."""
- site = self.get_site('lyricwiki')
- self.assertEqual(site.hostname(), 'lyrics.wikia.com')
+ url = 'lyrics.fandom.com'
+ site = self.site
+ self.assertEqual(site.hostname(), url)
self.assertEqual(site.code, 'en')
self.assertIsInstance(site.namespaces, Mapping)
self.assertFalse(site.obsolete)
- self.assertEqual(site.family.hostname('en'), 'lyrics.wikia.com')
+ self.assertEqual(site.family.hostname('en'), url)
- self.assertEqual(site.family.hostname('lyrics'),
'lyrics.wikia.com')
- self.assertEqual(site.family.hostname('lyricwiki'),
'lyrics.wikia.com')
-
+ self.assertRaises(KeyError, site.family.hostname, 'lyrics')
+ self.assertRaises(KeyError, site.family.hostname, 'lyricwiki')
self.assertRaises(pywikibot.UnknownSite, pywikibot.Site,
'lyricwiki', 'lyricwiki')
-
self.assertRaises(pywikibot.UnknownSite, pywikibot.Site,
'de', 'lyricwiki')
--
To view, visit
https://gerrit.wikimedia.org/r/503764
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I921c309bfc3117f6dd2adcf8bb2816b9d9cf25d4
Gerrit-Change-Number: 503764
Gerrit-PatchSet: 4
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki(a)aol.com>
Gerrit-Reviewer: Dalba <dalba.wiki(a)gmail.com>
Gerrit-Reviewer: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: jenkins-bot (75)