jenkins-bot has submitted this change and it was merged.
Change subject: Mark site.patrol() as a user write action
......................................................................
Mark site.patrol() as a user write action
Set the patrol test case to be 'write' so that it is
disabled by default, and only run on the 'test:test' site.
Not cherry-picked:
pywikibot/families/test_family.py
tests/aspects.py
Change-Id: I0ab4dc20f82857505236c0c678a602c02c001e37
(manually cherry picked from 09dce8fe3b30)
---
M pywikibot/site.py
M tests/site_tests.py
2 files changed, 13 insertions(+), 0 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 312bb39..e85b821 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -4665,6 +4665,8 @@
"notpatrollable": "The revision %(revid)s can't be patrolled as it's too old."
}
+ @must_be(group='user')
+ @deprecated_args(token=None)
def patrol(self, rcid=None, revid=None, revision=None):
"""Return a generator of patrolled pages.
diff --git a/tests/site_tests.py b/tests/site_tests.py
index d9bd295..20be28b 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -1372,6 +1372,17 @@
self.assertTrue(user["name"]
in ["Jimbo Wales", "Brion VIBBER", "Tim Starling"])
+
+class PatrolTestCase(TestCase):
+
+ """Test patrol method."""
+
+ family = 'test'
+ code = 'test'
+
+ user = True
+ write = True
+
def testPatrol(self):
"""Test the site.patrol() method."""
mysite = self.get_site()
--
To view, visit https://gerrit.wikimedia.org/r/243508
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I0ab4dc20f82857505236c0c678a602c02c001e37
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: 2.0
Gerrit-Owner: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: jenkins-bot <>
Build Update for wikimedia/pywikibot-core
-------------------------------------
Build: #2977
Status: Passed
Duration: 18 minutes and 37 seconds
Commit: 5c5d658 (2.0)
Author: Fabian Neundorf
Message: [FIX] getLanguageLinks: Skip own site
When the text contains an langlink to its own site, it should be skipped as it
is not an interwiki link.
Conflicts:
tests/textlib_tests.py
Bug: T114608
Change-Id: I0856e198e817eac160b7f2682bffc9e65387ac6e
(cherry picked from commit c24650e8f55c74b78270cf66615433c702eac647)
View the changeset: https://github.com/wikimedia/pywikibot-core/compare/9109ce0e4393...5c5d658a…
View the full build log and details: https://travis-ci.org/wikimedia/pywikibot-core/builds/83797897
--
You can configure recipients for build notifications in your .travis.yml file. See http://docs.travis-ci.com/user/notifications
jenkins-bot has submitted this change and it was merged.
Change subject: [FIX] getLanguageLinks: Skip own site
......................................................................
[FIX] getLanguageLinks: Skip own site
When the text contains an langlink to its own site, it should be skipped as it
is not an interwiki link.
Conflicts:
tests/textlib_tests.py
Bug: T114608
Change-Id: I0856e198e817eac160b7f2682bffc9e65387ac6e
(cherry picked from commit c24650e8f55c74b78270cf66615433c702eac647)
---
M pywikibot/textlib.py
M tests/textlib_tests.py
2 files changed, 43 insertions(+), 2 deletions(-)
Approvals:
John Vandenberg: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py
index b40aba4..09281a4 100644
--- a/pywikibot/textlib.py
+++ b/pywikibot/textlib.py
@@ -482,7 +482,8 @@
"""
Return a dict of inter-language links found in text.
- The returned dict uses language codes as keys and Page objects as values.
+ The returned dict uses the site as keys and Page objects as values. It does
+ not contain its own site.
Do not call this routine directly, use Page.interwiki() method
instead.
@@ -524,6 +525,9 @@
pagetitle = pagetitle[:pagetitle.index('|')]
# we want the actual page objects rather than the titles
site = pywikibot.Site(code=lang, fam=fam)
+ # skip language links to its own site
+ if site == insite:
+ continue
try:
result[site] = pywikibot.Page(site, pagetitle, insite=insite)
except pywikibot.InvalidTitle:
diff --git a/tests/textlib_tests.py b/tests/textlib_tests.py
index 468d3f2..ba1c3ff 100644
--- a/tests/textlib_tests.py
+++ b/tests/textlib_tests.py
@@ -19,7 +19,9 @@
from pywikibot import config
from pywikibot.tools import OrderedDict
-from tests.aspects import unittest, TestCase, DefaultDrySiteTestCase
+from tests.aspects import (
+ unittest, TestCase, DefaultDrySiteTestCase, SiteAttributeTestCase,
+)
files = {}
dirname = os.path.join(os.path.dirname(__file__), "pages")
@@ -541,6 +543,41 @@
r'X\g<bar>X')
+class TestGetLanguageLinks(SiteAttributeTestCase):
+
+ """Test L{textlib.getLanguageLinks} function."""
+
+ sites = {
+ 'enwp': {
+ 'family': 'wikipedia',
+ 'code': 'en',
+ },
+ 'dewp': {
+ 'family': 'wikipedia',
+ 'code': 'de',
+ },
+ 'commons': {
+ 'family': 'commons',
+ 'code': 'commons',
+ },
+ }
+
+ example_text = '[[en:Site]] [[de:Site|Piped]] [[commons:Site]] [[baden:Site]]'
+
+ @classmethod
+ def setUpClass(cls):
+ """Define set of valid targets for the example text."""
+ super(TestGetLanguageLinks, cls).setUpClass()
+ cls.sites_set = set([cls.enwp, cls.dewp])
+
+ def test_getLanguageLinks(self, key):
+ """Test if the function returns the correct titles and sites."""
+ lang_links = textlib.getLanguageLinks(self.example_text, self.site)
+ self.assertEqual(set(page.title() for page in lang_links.values()),
+ set(['Site']))
+ self.assertEqual(set(lang_links), self.sites_set - set([self.site]))
+
+
if __name__ == '__main__':
try:
unittest.main()
--
To view, visit https://gerrit.wikimedia.org/r/243832
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I0856e198e817eac160b7f2682bffc9e65387ac6e
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: 2.0
Gerrit-Owner: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: Set __name__ on generated test functions
......................................................................
Set __name__ on generated test functions
When tests.aspects creates multiple tests for a specified list
of sites, it was setting the name of the generated test in the
test class dictionary, but nose 2.7 also needs the generated test
function to have __name__ set.
Change-Id: I5687ec91dba68ffa671641c6c219f6a20bc5a84e
(cherry picked from commit 4ec75cd7a3882f383fdfd0c3d6c6b2b13e839492)
---
M tests/aspects.py
1 file changed, 1 insertion(+), 0 deletions(-)
Approvals:
John Vandenberg: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/aspects.py b/tests/aspects.py
index f96d9f0..4e0411c 100644
--- a/tests/aspects.py
+++ b/tests/aspects.py
@@ -782,6 +782,7 @@
test_name = test + '_' + key
dct[test_name] = wrap_method(key, sitedata, dct[test])
+ dct[test_name].__name__ = str(test_name)
if key in dct.get('expected_failures', []):
dct[test_name] = unittest.expectedFailure(dct[test_name])
--
To view, visit https://gerrit.wikimedia.org/r/243831
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I5687ec91dba68ffa671641c6c219f6a20bc5a84e
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: 2.0
Gerrit-Owner: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: jenkins-bot <>
jenkins-bot has submitted this change and it was merged.
Change subject: [FIX] getLanguageLinks: Skip own site
......................................................................
[FIX] getLanguageLinks: Skip own site
When the text contains an langlink to its own site, it should be skipped as it
is not an interwiki link.
Bug: T114608
Change-Id: I0856e198e817eac160b7f2682bffc9e65387ac6e
---
M pywikibot/textlib.py
M tests/textlib_tests.py
2 files changed, 41 insertions(+), 2 deletions(-)
Approvals:
John Vandenberg: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py
index 2b6c529..d80ca1a 100644
--- a/pywikibot/textlib.py
+++ b/pywikibot/textlib.py
@@ -735,7 +735,8 @@
"""
Return a dict of inter-language links found in text.
- The returned dict uses language codes as keys and Page objects as values.
+ The returned dict uses the site as keys and Page objects as values. It does
+ not contain its own site.
Do not call this routine directly, use Page.interwiki() method
instead.
@@ -777,6 +778,9 @@
pagetitle = pagetitle[:pagetitle.index('|')]
# we want the actual page objects rather than the titles
site = pywikibot.Site(code=lang, fam=fam)
+ # skip language links to its own site
+ if site == insite:
+ continue
try:
result[site] = pywikibot.Page(site, pagetitle)
except pywikibot.InvalidTitle:
diff --git a/tests/textlib_tests.py b/tests/textlib_tests.py
index 5e84526..f450455 100644
--- a/tests/textlib_tests.py
+++ b/tests/textlib_tests.py
@@ -23,7 +23,7 @@
from tests.aspects import (
unittest, require_modules, TestCase, DefaultDrySiteTestCase,
- PatchingTestCase,
+ PatchingTestCase, SiteAttributeTestCase,
)
files = {}
@@ -1187,6 +1187,41 @@
r'X\g<bar>X')
+class TestGetLanguageLinks(SiteAttributeTestCase):
+
+ """Test L{textlib.getLanguageLinks} function."""
+
+ sites = {
+ 'enwp': {
+ 'family': 'wikipedia',
+ 'code': 'en',
+ },
+ 'dewp': {
+ 'family': 'wikipedia',
+ 'code': 'de',
+ },
+ 'commons': {
+ 'family': 'commons',
+ 'code': 'commons',
+ },
+ }
+
+ example_text = '[[en:Site]] [[de:Site|Piped]] [[commons:Site]] [[baden:Site]]'
+
+ @classmethod
+ def setUpClass(cls):
+ """Define set of valid targets for the example text."""
+ super(TestGetLanguageLinks, cls).setUpClass()
+ cls.sites_set = set([cls.enwp, cls.dewp])
+
+ def test_getLanguageLinks(self, key):
+ """Test if the function returns the correct titles and sites."""
+ lang_links = textlib.getLanguageLinks(self.example_text, self.site)
+ self.assertEqual(set(page.title() for page in lang_links.values()),
+ set(['Site']))
+ self.assertEqual(set(lang_links), self.sites_set - set([self.site]))
+
+
if __name__ == '__main__':
try:
unittest.main()
--
To view, visit https://gerrit.wikimedia.org/r/243639
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I0856e198e817eac160b7f2682bffc9e65387ac6e
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: jenkins-bot <>