jenkins-bot has submitted this change and it was merged.
Change subject: Bug 54745: Link.langlinkUnsafe interwiki_forward
......................................................................
Bug 54745: Link.langlinkUnsafe interwiki_forward
- Site.pagelanglinks (and others) use Link.langlinkUnsafe,
which didnt respect Family.interwiki_forward. This caused
interwiki links on Commons to link to Commons pages.
Change-Id: Ia30b7b7dd2b4349a72e0594f135695848cf61bdb
---
M pywikibot/page.py
M tests/site_tests.py
2 files changed, 19 insertions(+), 1 deletion(-)
Approvals:
Ricordisamoa: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/page.py b/pywikibot/page.py
index cd53b78..1f1877b 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -3477,7 +3477,10 @@
Assumes that the lang & title come clean, no checks are made.
"""
link = Link.__new__(Link)
- link._site = pywikibot.Site(lang, source.family.name)
+ if source.family.interwiki_forward:
+ link._site = pywikibot.Site(lang, source.family.interwiki_forward)
+ else:
+ link._site = pywikibot.Site(lang, source.family.name)
link._section = None
link._source = source
diff --git a/tests/site_tests.py b/tests/site_tests.py
index 644b782..cbce977 100644
--- a/tests/site_tests.py
+++ b/tests/site_tests.py
@@ -1117,6 +1117,21 @@
# TODO test other optional arguments
+class TestCommonsSite(PywikibotTestCase):
+ """Test cases for Site methods on Commons."""
+ family = "commons"
+ code = "commons"
+
+ def testInterWikiForward(self):
+ self.site = pywikibot.Site(self.code, self.family)
+ self.mainpage = pywikibot.Page(pywikibot.Link("Main Page", self.site))
+ # test pagelanglinks on commons,
+ # which forwards interwikis to wikipedia
+ ll = next(self.site.pagelanglinks(self.mainpage))
+ self.assertType(ll, pywikibot.Link)
+ self.assertEquals(ll.site.family.name, 'wikipedia')
+
+
if __name__ == '__main__':
try:
unittest.main()
--
To view, visit
https://gerrit.wikimedia.org/r/138299
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia30b7b7dd2b4349a72e0594f135695848cf61bdb
Gerrit-PatchSet: 4
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: John Vandenberg <jayvdb(a)gmail.com>
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: Ricordisamoa <ricordisamoa(a)openmailbox.org>
Gerrit-Reviewer: jenkins-bot <>