[test_download] Skip over BadStatusLine errors
authorPhilipp Hagemeister <phihag@phihag.de>
Thu, 6 Feb 2014 03:19:55 +0000 (04:19 +0100)
committerPhilipp Hagemeister <phihag@phihag.de>
Thu, 6 Feb 2014 03:19:57 +0000 (04:19 +0100)
An error like https://travis-ci.org/rg3/youtube-dl/jobs/18317799#L449 is almost certainly the server's fault.

test/test_download.py

index 0d925ae69bcf63e13ff35ec1df3c5de0c3b09b3c..7587a18aa18fee1cdf61a735246c62dbf91e691d 100644 (file)
@@ -22,6 +22,7 @@ import socket
 
 import youtube_dl.YoutubeDL
 from youtube_dl.utils import (
+    compat_http_client,
     compat_str,
     compat_urllib_error,
     compat_HTTPError,
@@ -110,7 +111,7 @@ def generator(test_case):
                     ydl.download([test_case['url']])
                 except (DownloadError, ExtractorError) as err:
                     # Check if the exception is not a network related one
-                    if not err.exc_info[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError) or (err.exc_info[0] == compat_HTTPError and err.exc_info[1].code == 503):
+                    if not err.exc_info[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError, compat_http_client.BadStatusLine) or (err.exc_info[0] == compat_HTTPError and err.exc_info[1].code == 503):
                         raise
 
                     if try_num == RETRIES: