jenkins-bot has submitted this change and it was merged.
Change subject: [WIP] test connectionError ......................................................................
[WIP] test connectionError
Change-Id: I343de43a35d6b1562072ba837f5a970b3c3e2a76 --- M pywikibot/site_detect.py M tests/site_detect_tests.py M tox.ini 3 files changed, 6 insertions(+), 99 deletions(-)
Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
diff --git a/pywikibot/site_detect.py b/pywikibot/site_detect.py index 444b80b..a6a3003 100644 --- a/pywikibot/site_detect.py +++ b/pywikibot/site_detect.py @@ -54,8 +54,6 @@ r = fetch(fromurl) if r.status == 503: raise ServerError('Service Unavailable') - if r.status == 104: - raise ServerError('Connection reset by peer')
if fromurl != r.data.url: pywikibot.log('{0} redirected to {1}'.format(fromurl, r.data.url)) diff --git a/tests/site_detect_tests.py b/tests/site_detect_tests.py index 51e7904..5829bfe 100644 --- a/tests/site_detect_tests.py +++ b/tests/site_detect_tests.py @@ -11,6 +11,7 @@
from requests.exceptions import Timeout
+import pywikibot from pywikibot.exceptions import ServerError from pywikibot.site_detect import MWSite from pywikibot.tools import MediaWikiVersion @@ -86,9 +87,11 @@ try: site = MWSite(url) except (ServerError, Timeout) as e: + pywikibot.exception() self.skips[url] = e return except Exception as e: + pywikibot.exception() print('failure {0} on {1}: {2}'.format( url, type(e), e)) self.errors[url] = e @@ -100,6 +103,7 @@ self.assertIsInstance(site, result) self.passes[url] = site except AssertionError as error: + pywikibot.exception() self.failures[url] = error
def assertSite(self, url): @@ -169,102 +173,7 @@
def test_detect_site(self): """Test detection of MediaWiki sites.""" - self.assertSite('http://www.hrwiki.org/index.php/$1') # v 1.15 self.assertSite('http://www.proofwiki.org/wiki/$1') - self.assertSite( - 'http://www.ck-wissen.de/ckwiki/index.php?title=$1') - self.assertSite('http://en.citizendium.org/wiki/$1') - self.assertSite( - 'http://www.lojban.org/tiki/tiki-index.php?page=$1') - self.assertSite('http://www.wikichristian.org/index.php?title=$1') - self.assertSite('https://en.wikifur.com/wiki/$1') - self.assertSite('http://bluwiki.com/go/$1') - self.assertSite('http://kino.skripov.com/index.php/$1') - self.assertAllPass() - - def test_wikisophia(self): - """Test wikisophia.org which has redirect problems.""" - # /index.php?title=$1 reports 404, however a wiki exists there, - # but the API is also hidden. - self.assertNoSite('http://wikisophia.org/index.php?title=$1') - self.assertAllError() - - def test_pre_114_sites(self): - """Test pre 1.14 sites which should be detected as unsupported.""" - # v1.12 - self.assertNoSite('http://www.livepedia.gr/index.php?title=$1') - # v1.11 - self.assertNoSite('http://www.wikifon.org/$1') - self.assertNoSite('http://glossary.reuters.com/index.php?title=$1') - # v1.11, with no query module - self.assertNoSite('http://wikitree.org/index.php?title=$1') - # v1.9 - self.assertNoSite('http://www.wikinvest.com/$1') - self.assertAllError() - - def test_non_standard_version_sites(self): - """Test non-standard version string sites.""" - self.assertSite('https://wiki.gentoo.org/wiki/$1') - self.assertSite('http://wiki.arabeyes.org/$1') - self.assertSite('http://tfwiki.net/wiki/$1') - self.assertAllPass() - - @unittest.expectedFailure # Test no longer valid - def test_detect_failure(self): - """Test detection failure for MediaWiki sites with an API.""" - # SSL certificate verification fails - self.assertNoSite('http://hackerspaces.org/wiki/$1') - self.assertAllError() - - @unittest.expectedFailure - def test_api_hidden(self): - """Test MediaWiki sites with a hidden enabled API.""" - # api.php is not available - self.assertNoSite('http://wiki.animutationportal.com/index.php/$1') - # HTML looks like it has an API, but redirect rules prevent access - self.assertNoSite('http://www.EcoReality.org/wiki/$1') - self.assertAllError() - - def test_api_disabled(self): - """Test MediaWiki sites without an enabled API.""" - self.assertNoSite('http://wiki.linuxquestions.org/wiki/$1') - self.assertAllError() - - def test_offline_sites(self): - """Test offline sites.""" - self.assertNoSite('http://seattlewiki.org/wiki/$1') - self.assertAllError() - - def test_pre_api_sites(self): - """Test detection of MediaWiki sites prior to the API.""" - self.assertNoSite('http://www.wikif1.org/$1') - self.assertNoSite('http://www.thelemapedia.org/index.php/$1') - self.assertNoSite('http://esperanto.blahus.cz/cxej/vikio/index.php/$1') - 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.assertAllError() - - def test_detect_nosite(self): - """Test detection of non-wiki sites.""" - self.assertNoSite('http://www.imdb.com/name/nm$1/') - self.assertNoSite('http://www.ecyrd.com/JSPWiki/Wiki.jsp?page=$1') - self.assertNoSite('http://operawiki.info/$1') - self.assertNoSite( - 'http://www.tvtropes.org/pmwiki/pmwiki.php/Main/$1') - self.assertNoSite('http://c2.com/cgi/wiki?$1') - self.assertNoSite('https://phabricator.wikimedia.org/$1') - self.assertNoSite( - 'http://www.merriam-webster.com/cgi-bin/dictionary?book=Dictionary&va=$1') - self.assertNoSite('http://arxiv.org/abs/$1') - self.assertAllError() - - def test_musicbrainz_doc(self): - """Test http://musicbrainz.org/doc/ which has a page 'api.php'.""" - # Possible false positive caused by the existance of a page - # called http://musicbrainz.org/doc/api.php - self.assertNoSite('http://musicbrainz.org/doc/$1') - self.assertAllError()
if __name__ == '__main__': diff --git a/tox.ini b/tox.ini index 1fad75b..5c42ad3 100644 --- a/tox.ini +++ b/tox.ini @@ -1,12 +1,12 @@ [tox] minversion = 1.6 skipsdist = True -envlist = flake8,flake8-py3,doctest-{py27,py34},py26,py27,py34 +envlist = flake8,doctest-{py27,py34},py27
[tox:jenkins] # Override default for WM Jenkins # Others are run in their own individual jobs on WM Jenkins -envlist = flake8,flake8-py3 +envlist = flake8
[params] doctest_skip = --ignore-files=(gui.py|botirc.py|rcstream.py)
pywikibot-commits@lists.wikimedia.org