jenkins-bot has submitted this change and it was merged.
Change subject: Revert "Make obsolete site object can be created"
......................................................................
Revert "Make obsolete site object can be created"
Note to self: actually run *all* tests. Apparently we have a duplicate set of must_be
tests >_<
See
https://travis-ci.org/wikimedia/pywikibot-core/jobs/21351801
This reverts commit b548a1afb74ba26d1acd508e8b6ed14f03a368ee.
Change-Id: Icd6ddbc18d0515ec4f3f786dd7eb990e064bab8c
---
M pywikibot/page.py
M pywikibot/site.py
M tests/site_tests.py
3 files changed, 15 insertions(+), 49 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/page.py b/pywikibot/page.py
index 6c0178d..f95b39b 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -997,40 +997,31 @@
# ignore any links with invalid contents
continue
- def langlinks(self, include_obsolete=False):
+ def langlinks(self):
"""Return a list of all interlanguage Links on this page.
-
- @param include_obsolete: if true, return even Link objects whose site
- is obsolete
"""
# Data might have been preloaded
if not hasattr(self, '_langlinks'):
- self._langlinks = list(self.iterlanglinks(include_obsolete=True))
+ self._langlinks = list(self.iterlanglinks())
- if include_obsolete:
- return self._langlinks
- else:
- return filter(lambda i: not i.site.obsolete, self._langlinks)
+ return self._langlinks
- def iterlanglinks(self, step=None, total=None, include_obsolete=False):
+ def iterlanglinks(self, step=None, total=None):
"""Iterate all interlanguage links on this page.
@param step: limit each API call to this number of pages
@param total: iterate no more than this number of pages in total
- @param include_obsolete: if true, yield even Link object whose site
- is obsolete
@return: a generator that yields Link objects.
"""
if hasattr(self, '_langlinks'):
- return iter(self.langlinks(include_obsolete=include_obsolete))
+ return iter(self._langlinks)
# XXX We might want to fill _langlinks when the Site
# method is called. If we do this, we'll have to think
# about what will happen if the generator is not completely
# iterated upon.
- return self.site.pagelanglinks(self, step=step, total=total,
- include_obsolete=include_obsolete)
+ return self.site.pagelanglinks(self, step=step, total=total)
def data_item(self):
"""
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 14b916a..0d1e92d 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -129,15 +129,15 @@
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]
else:
# no such language anymore
- self.obsolete = True
- elif self.__code not in self.languages():
+ raise NoSuchSite("Language %s in family %s is obsolete"
+ % (self.__code, self.__family.name))
+ if self.__code not in self.languages():
if self.__family.name in list(self.__family.langs.keys()) and \
len(self.__family.langs) == 1:
oldcode = self.__code
@@ -707,15 +707,10 @@
@param right: the rights the logged in user should have
not supported yet and thus ignored.
@returns: a decorator to make sure the requirement is statisfied when
- the decorated function is called. The function can be called
- with as_group='sysop' to override the group set in the
- decorator.
+ the decorated function is called.
"""
def decorator(fn):
def callee(self, *args, **kwargs):
- if self.obsolete:
- raise NoSuchSite("Language %s in family %s is obsolete"
- % (self.code, self.family.name))
grp = kwargs.pop('as_group', group)
if grp == 'user':
self.login(False)
@@ -1964,14 +1959,8 @@
# No such function in the API (this method isn't called anywhere)
raise NotImplementedError
- def pagelanglinks(self, page, step=None, total=None,
- include_obsolete=False):
- """Iterate all interlanguage links on page, yielding Link
objects.
-
- @param include_obsolete: if true, yield even Link objects whose
- site is obsolete
-
- """
+ def pagelanglinks(self, page, step=None, total=None):
+ """Iterate all interlanguage links on page, yielding Link
objects."""
lltitle = page.title(withSection=False)
llquery = self._generator(api.PropertyGenerator,
type_arg="langlinks",
@@ -1985,13 +1974,9 @@
if 'langlinks' not in pageitem:
continue
for linkdata in pageitem['langlinks']:
- link = pywikibot.Link.langlinkUnsafe(linkdata['lang'],
- linkdata['*'],
- source=self)
- if link.site.obsolete and not include_obsolete:
- continue
- else:
- yield link
+ yield pywikibot.Link.langlinkUnsafe(linkdata['lang'],
+ linkdata['*'],
+ source=self)
def page_extlinks(self, page, step=None, total=None):
"""Iterate all external links on page, yielding URL
strings."""
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 10e5bdf..79db3e2 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -1113,11 +1113,7 @@
# Implemented without setUpClass(cls) and global variables as objects
# were not completely disposed and recreated but retained 'memory'
def setUp(self):
- self.code = 'test'
- self.family = lambda: None
- self.family.name = 'test'
self._logged_in_as = None
- self.obsolete = False
def login(self, sysop):
# mock call
@@ -1161,12 +1157,6 @@
self.assertEqual(retval[0], args)
self.assertEqual(retval[1], kwargs)
self.assertEqual(self._logged_in_as, 'sysop')
-
- def testObsoleteSite(self):
- self.obsolete = True
- args = (1, 2, 'a', 'b')
- kwargs = {'i': 'j', 'k': 'l'}
- self.assertRaises(pywikibot.NoSuchSite, self.call_this_user_req_function, args,
kwargs)
if __name__ == '__main__':
try:
--
To view, visit
https://gerrit.wikimedia.org/r/120364
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Icd6ddbc18d0515ec4f3f786dd7eb990e064bab8c
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: jenkins-bot <>