jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/492484 )
Change subject: Revert "[IMPR] Fix handling of interlanguage links in replace_links" ......................................................................
Revert "[IMPR] Fix handling of interlanguage links in replace_links"
Reverted due to failing tests: https://travis-ci.org/wikimedia/pywikibot/builds/497485432
This reverts commit 085e75615d743c0af2e39ee9cec1f64c006f2b3b.
Change-Id: I0393922c18463e73fee880159b14b25bbbf21f26 --- M pywikibot/textlib.py M tests/textlib_tests.py 2 files changed, 5 insertions(+), 54 deletions(-)
Approvals: Dvorapa: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py index 1a5f85c..1c71ed1 100644 --- a/pywikibot/textlib.py +++ b/pywikibot/textlib.py @@ -710,15 +710,10 @@ m = link_pattern.search(text, pos=curpos) if not m: break - # Ignore links to sections of the same page + # ignore links to sections of the same page if not m.group('title').strip(): curpos = m.end() continue - # Ignore interwiki links - if (site.isInterwikiLink(m.group('title').strip()) - and not m.group('title').strip().startswith(':')): - curpos = m.end() - continue groups = m.groupdict() if groups['label'] and '[[' in groups['label']: # TODO: Work on the link within the label too @@ -745,6 +740,10 @@ # unrecognized iw prefix curpos = end continue + # ignore interwiki links + if link.site != site: + curpos = end + continue
# Check whether the link found should be replaced. # Either None, False or tuple(Link, bool) @@ -793,9 +792,6 @@ is_link = False
new_title = new_link.canonical_title() - # Make correct langlink if needed - if not new_link.site == site: - new_title = ':' + new_link.site.code + ':' + new_title
if is_link: # Use link's label diff --git a/tests/textlib_tests.py b/tests/textlib_tests.py index 2c6e7b0..6b754da 100644 --- a/tests/textlib_tests.py +++ b/tests/textlib_tests.py @@ -1060,51 +1060,6 @@ ValueError, r'unicode (str.*bytes (str', textlib.replace_links, self.text, callback, self.wp_site)
- def test_replace_interwiki_links(self): - """Make sure interwiki links can not be replaced.""" - link = '[[fr:how]]' - self.assertEqual( - textlib.replace_links(link, ('fr:how', 'de:are'), self.wp_site), - link) - self.assertEqual( - textlib.replace_links(link, (':fr:how', ':de:are'), self.wp_site), - link) - self.assertEqual( - textlib.replace_links(link, ('how', 'de:are'), self.wp_site), - link) - self.assertEqual( - textlib.replace_links(link, ('de:how', 'de:are'), self.wp_site), - link) - - -class TestReplaceLinksNonDry(TestCase): - """Test the replace_links function in textlib non-dry.""" - - family = 'wikipedia' - code = 'en' - - cached = True - - def test_replace_interlanguage_links(self): - """Test replacing interlanguage links.""" - link = '[[:fr:how]]' - self.assertEqual( - textlib.replace_links(link, (':fr:how', ':de:are'), - self.wp_site), - '[[:de:are]]') - self.assertEqual( - textlib.replace_links(link, ('fr:how', 'de:are'), - self.wp_site), - '[[:de:are]]') - self.assertEqual( - textlib.replace_links(link, ('how', ':de:are'), - self.wp_site), - link) - self.assertEqual( - textlib.replace_links(link, (':de:how', ':de:are'), - self.wp_site), - link) -
class TestLocalDigits(TestCase):