Page MenuHomePhabricator

test_merriam_webster of site_detect_tests.NoSiteTestCase testMethod fails with TooManyRedirects
Closed, ResolvedPublic

Description

=================================== FAILURES ===================================
_____________________ NoSiteTestCase.test_merriam_webster ______________________

self = <tests.site_detect_tests.NoSiteTestCase testMethod=test_merriam_webster>

    def test_merriam_webster(self):
        """Test detection of MediaWiki sites for www.merriam-webster.com."""
        self.assertNoSite(
>           'http://www.merriam-webster.com/'
            'cgi-bin/dictionary?book=Dictionary&va=$1')

tests/site_detect_tests.py:214: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/site_detect_tests.py:52: in assertNoSite
    MWSite(url)
pywikibot/site_detect.py:45: in __init__
    r = fetch(fromurl, **kwargs)
pywikibot/tools/__init__.py:1584: in wrapper
    return obj(*__args, **__kw)
pywikibot/comms/http.py:414: in fetch
    callback(response)
pywikibot/comms/http.py:296: in error_handling_callback
    raise response from None
pywikibot/comms/http.py:407: in fetch
    **kwargs)
../../../virtualenv/python3.5.10/lib/python3.5/site-packages/requests/sessions.py:542: in request
    resp = self.send(prep, **send_kwargs)
../../../virtualenv/python3.5.10/lib/python3.5/site-packages/requests/sessions.py:677: in send
    history = [resp for resp in gen]
../../../virtualenv/python3.5.10/lib/python3.5/site-packages/requests/sessions.py:677: in <listcomp>
    history = [resp for resp in gen]
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

    def resolve_redirects(self, resp, req, stream=False, timeout=None,
                          verify=True, cert=None, proxies=None, yield_requests=False, **adapter_kwargs):
        """Receives a Response. Returns a generator of Responses or Requests."""
    
        hist = []  # keep track of history
    
        url = self.get_redirect_target(resp)
        previous_fragment = urlparse(req.url).fragment
        while url:
            prepared_request = req.copy()
    
            # Update history and keep track of redirects.
            # resp.history must ignore the original request in this loop
            hist.append(resp)
            resp.history = hist[1:]
    
            try:
                resp.content  # Consume socket so it can be released
            except (ChunkedEncodingError, ContentDecodingError, RuntimeError):
                resp.raw.read(decode_content=False)
    
            if len(resp.history) >= self.max_redirects:
>               raise TooManyRedirects('Exceeded {} redirects.'.format(self.max_redirects), response=resp)
E               requests.exceptions.TooManyRedirects: Exceeded 30 redirects.

../../../virtualenv/python3.5.10/lib/python3.5/site-packages/requests/sessions.py:166: TooManyRedirects
------------------------------ Captured log call -------------------------------
ERROR    pywiki:logging.py:101 An error occurred for uri https://www.merriam-webster.com:443/dictionary/
=============================== warnings summary ===============================

Event Timeline

Xqt triaged this task as High priority.Apr 27 2021, 10:57 AM

Change 682925 had a related patch set uploaded (by Xqt; author: Xqt):

[pywikibot/core@master] [tests] Fix TooManyRedirects failure for test_merriam_webster

https://gerrit.wikimedia.org/r/682925

Xqt claimed this task.

Change 682925 merged by jenkins-bot:

[pywikibot/core@master] [tests] Fix TooManyRedirects failure for test_merriam_webster

https://gerrit.wikimedia.org/r/682925