jenkins-bot has submitted this change and it was merged.
Change subject: Skip sites that timeout
......................................................................
Skip sites that timeout
Change-Id: I2e7cc972f262b281e65f56cf48c4ecd8148d1f4f
---
M tests/site_detect_tests.py
1 file changed, 31 insertions(+), 13 deletions(-)
Approvals:
XZise: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/site_detect_tests.py b/tests/site_detect_tests.py
index 7a0072c..f13105f 100644
--- a/tests/site_detect_tests.py
+++ b/tests/site_detect_tests.py
@@ -9,6 +9,8 @@
__version__ = '$Id$'
+from requests.exceptions import Timeout
+
from pywikibot.site_detect import MWSite
from pywikibot.tools import PY2
@@ -28,6 +30,7 @@
def setUp(self):
"""Set up test."""
+ self.skips = {}
self.failures = {}
self.errors = {}
self.passes = {}
@@ -40,25 +43,25 @@
res = None
typ = -1
for pos, result in enumerate([self.passes, self.errors,
- self.failures]):
+ self.failures, self.skips]):
if url in result:
assert res is None
res = result[url]
typ = pos
if res is None:
- typ += 1
+ typ = len(PREFIXES) - 1
res = 'Missing'
assert 0 <= pos < len(PREFIXES)
return typ, url, res
super(TestWikiSiteDetection, self).tearDown()
- print('Out of %d sites, %d tests passed, %d tests failed '
- 'and %d tests raised an error'
+ print('Out of %d sites, %d tests passed, %d tests failed, '
+ '%d tests skiped and %d tests raised an error'
% (len(self.all), len(self.passes), len(self.failures),
- len(self.errors))
+ len(self.skips), len(self.errors))
)
- PREFIXES = ['PASS', 'ERR ', 'FAIL', 'MISS']
+ PREFIXES = ['PASS', 'ERR ', 'FAIL', 'SKIP',
'MISS']
sorted_all = sorted((norm(url) for url in self.all),
key=lambda item: item[0])
@@ -72,8 +75,12 @@
self.all += [url]
try:
site = MWSite(url)
+ except Timeout as e:
+ self.skips[url] = e
+ return
except Exception as e:
- print('failed on ' + url)
+ print('failure {0} on {1}: {2}'.format(
+ url, type(e), e))
self.errors[url] = e
return
try:
@@ -92,6 +99,18 @@
def assertNoSite(self, url):
"""Assert a url is not a MediaWiki site."""
self._wiki_detection(url, None)
+
+ def assertAllPass(self):
+ """Assert that all urls were detected as a MediaWiki
site."""
+ self.assertEqual(len(self.passes), len(self.all) - len(self.skips))
+ self.assertEqual(len(self.failures), 0)
+ self.assertEqual(len(self.errors), 0)
+
+ def assertAllError(self):
+ """Assert that all urls were not detected as a MediaWiki
site."""
+ self.assertEqual(len(self.passes), 0)
+ self.assertEqual(len(self.failures), 0)
+ self.assertEqual(len(self.errors), len(self.all) - len(self.skips))
def test_IWM(self):
"""Test the load_site method for MW sites on the IWM
list."""
@@ -125,6 +144,7 @@
"""Test detection of MediaWiki sites."""
self.assertSite('http://botwiki.sno.cc/wiki/$1')
self.assertSite('http://glossary.reuters.com/index.php?title=$1')
+ self.assertSite('http://www.livepedia.gr/index.php?title=$1')
self.assertSite('http://guildwars.wikia.com/wiki/$1')
self.assertSite('http://www.hrwiki.org/index.php/$1')
self.assertSite('http://www.proofwiki.org/wiki/$1')
@@ -136,9 +156,7 @@
self.assertSite('http://www.EcoReality.org/wiki/$1')
self.assertSite('http://www.wikichristian.org/index.php?title=$1')
self.assertSite('http://wikitree.org/index.php?title=$1')
- self.assertEqual(len(self.passes), 11)
- self.assertEqual(len(self.failures), 0)
- self.assertEqual(len(self.errors), 0)
+ self.assertAllPass()
def test_detect_failure(self):
"""Test detection failure for MediaWiki sites with an
API."""
@@ -149,7 +167,7 @@
self.assertNoSite('http://wiki.linuxquestions.org/wiki/$1')
# offline
self.assertNoSite('http://seattlewiki.org/wiki/$1')
- self.assertEqual(len(self.errors), 4)
+ self.assertAllError()
def test_pre_api_sites(self):
"""Test detection of MediaWiki sites prior to the
API."""
@@ -159,7 +177,7 @@
self.assertNoSite('http://www.werelate.org/wiki/$1')
self.assertNoSite('http://www.otterstedt.de/wiki/index.php/$1')
self.assertNoSite('http://kb.mozillazine.org/$1')
- self.assertEqual(len(self.errors), 6)
+ self.assertAllError()
def test_detect_nosite(self):
"""Test detection of non-wiki sites."""
@@ -176,7 +194,7 @@
self.assertNoSite('http://arxiv.org/abs/$1')
self.assertNoSite('http://musicbrainz.org/doc/$1')
self.assertNoSite('http://wiki.animutationportal.com/index.php/$1')
- self.assertEqual(len(self.errors), 11)
+ self.assertAllError()
if __name__ == '__main__':
--
To view, visit
https://gerrit.wikimedia.org/r/234845
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I2e7cc972f262b281e65f56cf48c4ecd8148d1f4f
Gerrit-PatchSet: 5
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: XZise <CommodoreFabianus(a)gmx.de>
Gerrit-Reviewer: jenkins-bot <>