jenkins-bot submitted this change.

View Change

Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[tests] Combine TestFullyQualified(Explicit|Implicit)LinkDifferentFamilyParser

Change-Id: I3cd7d28f504c50ee2a8c668e57e734f1e4265b2b
---
M tests/link_tests.py
1 file changed, 38 insertions(+), 87 deletions(-)

diff --git a/tests/link_tests.py b/tests/link_tests.py
index 3f17b1f5..92a52b2 100644
--- a/tests/link_tests.py
+++ b/tests/link_tests.py
@@ -376,9 +376,9 @@
self.assertEqual(link.namespace, 4)


-class TestFullyQualifiedExplicitLinkDifferentFamilyParser(LinkTestCase):
+class TestFullyQualifiedLinkDifferentFamilyParser(LinkTestCase):

- """Test link to a different family."""
+ """Test link to a different family with and without preleading colon."""

sites = {
'enws': {
@@ -392,43 +392,49 @@
}
cached = True

+ PATTERN = '{colon}{first}:{second}:{title}'
+
def setUp(self):
"""Setup tests."""
super().setUp()
config.mylang = 'en'
config.family = 'wikisource'

- def test_fully_qualified_NS0_code(self):
- """Test ':en:wikipedia:Main Page' on enws is namespace 0."""
- link = Link(':en:wikipedia:Main Page')
- link.parse()
- self.assertEqual(link.site, self.get_site('enwp'))
- self.assertEqual(link.title, 'Main Page')
- self.assertEqual(link.namespace, 0)
+ def test_fully_qualified_NS0(self):
+ """Test that fully qualified link is in namespace 0."""
+ family, code = 'wikipedia:en'.split(':')
+ for colon in ('', ':'): # with or without preleading colon
+ # switch code:family sequence en:wikipedia or wikipedia:en
+ for first, second in [(family, code), (code, family)]:
+ with self.subTest(colon=colon,
+ site='{}:{}'.format(first, second)):
+ link_title = self.PATTERN.format(colon=colon,
+ first=first,
+ second=second,
+ title='Main Page')
+ link = Link(link_title)
+ link.parse()
+ self.assertEqual(link.site, self.get_site('enwp'))
+ self.assertEqual(link.title, 'Main Page')
+ self.assertEqual(link.namespace, 0)

- def test_fully_qualified_NS1_code(self):
- """Test ':en:wikipedia:Main Page' on enwp is namespace 1."""
- link = Link(':en:wikipedia:Talk:Main Page')
- link.parse()
- self.assertEqual(link.site, self.get_site('enwp'))
- self.assertEqual(link.title, 'Main Page')
- self.assertEqual(link.namespace, 1)
-
- def test_fully_qualified_NS0_family(self):
- """Test ':wikipedia:en:Main Page' on enws is namespace 0."""
- link = Link(':wikipedia:en:Main Page')
- link.parse()
- self.assertEqual(link.site, self.get_site('enwp'))
- self.assertEqual(link.title, 'Main Page')
- self.assertEqual(link.namespace, 0)
-
- def test_fully_qualified_NS1_family(self):
- """Test ':wikipedia:en:Talk:Main Page' on enws is namespace 1."""
- link = Link(':wikipedia:en:Talk:Main Page')
- link.parse()
- self.assertEqual(link.site, self.get_site('enwp'))
- self.assertEqual(link.title, 'Main Page')
- self.assertEqual(link.namespace, 1)
+ def test_fully_qualified_NS1(self):
+ """Test that fully qualified link is in namespace 1."""
+ family, code = 'wikipedia:en'.split(':')
+ for colon in ('', ':'): # with or without preleading colon
+ # switch code:family sequence en:wikipedia or wikipedia:en
+ for first, second in [(family, code), (code, family)]:
+ with self.subTest(colon=colon,
+ site='{}:{}'.format(first, second)):
+ link_title = self.PATTERN.format(colon=colon,
+ first=first,
+ second=second,
+ title='Talk:Main Page')
+ link = Link(link_title)
+ link.parse()
+ self.assertEqual(link.site, self.get_site('enwp'))
+ self.assertEqual(link.title, 'Main Page')
+ self.assertEqual(link.namespace, 1)


class TestFullyQualifiedExplicitLinkNoLangConfigFamilyParser(LinkTestCase):
@@ -720,61 +726,6 @@
self.assertEqual(link.namespace, 4)


-class TestFullyQualifiedImplicitLinkDifferentFamilyParser(LinkTestCase):
-
- """Test link to a different family without preleading colon."""
-
- sites = {
- 'enws': {
- 'family': 'wikisource',
- 'code': 'en'
- },
- 'enwp': {
- 'family': 'wikipedia',
- 'code': 'en'
- }
- }
- cached = True
-
- def setUp(self):
- """Setup tests."""
- super().setUp()
- config.mylang = 'en'
- config.family = 'wikisource'
-
- def test_fully_qualified_NS0_code(self):
- """Test 'en:wikipedia:Main Page' on enws is namespace 0."""
- link = Link('en:wikipedia:Main Page')
- link.parse()
- self.assertEqual(link.site, self.get_site('enwp'))
- self.assertEqual(link.title, 'Main Page')
- self.assertEqual(link.namespace, 0)
-
- def test_fully_qualified_NS1_code(self):
- """Test 'en:wikipedia:Main Page' on enws is namespace 1."""
- link = Link('en:wikipedia:Talk:Main Page')
- link.parse()
- self.assertEqual(link.site, self.get_site('enwp'))
- self.assertEqual(link.title, 'Main Page')
- self.assertEqual(link.namespace, 1)
-
- def test_fully_qualified_NS0_family(self):
- """Test 'wikipedia:en:Main Page' on enws is namespace 0."""
- link = Link('wikipedia:en:Main Page')
- link.parse()
- self.assertEqual(link.site, self.get_site('enwp'))
- self.assertEqual(link.title, 'Main Page')
- self.assertEqual(link.namespace, 0)
-
- def test_fully_qualified_NS1_family(self):
- """Test 'wikipedia:en:Talk:Main Page' on enws is namespace 1."""
- link = Link('wikipedia:en:Talk:Main Page')
- link.parse()
- self.assertEqual(link.site, self.get_site('enwp'))
- self.assertEqual(link.title, 'Main Page')
- self.assertEqual(link.namespace, 1)
-
-
class TestFullyQualifiedImplicitLinkNoLangConfigFamilyParser(LinkTestCase):

"""Test implicit link from family without lang code to other family."""

To view, visit change 666887. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: I3cd7d28f504c50ee2a8c668e57e734f1e4265b2b
Gerrit-Change-Number: 666887
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged