Автоматический тестовый прогон — Python HTTPResponseNotReady()

Я пытаюсь создать автоматический тест с использованием python для тестирования запроса и ответа youtube API, а также всего, что происходит случайным образом и быстро. Я получаю нестабильный HTTP-ответ от сервера. Я не использую один и тот же объект для каждого соединения, поскольку я создал его отдельными методами, но при тестировании я тестирую все это одним и тем же методом (т.е. вызываю создание, редактирование и удаление последовательно)

Вот ошибка, которую я получил.

  File "/var/lib/jenkins/shiningpanda/jobs/2a430f4f/virtualenvs/d41d8cd9/local/lib/python2.7/site-packages/oauth2client/client.py", line 490, in new_request
    redirections, connection_type)
  File "/var/lib/jenkins/shiningpanda/jobs/2a430f4f/virtualenvs/d41d8cd9/local/lib/python2.7/site-packages/httplib2/__init__.py", line 1570, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "/var/lib/jenkins/shiningpanda/jobs/2a430f4f/virtualenvs/d41d8cd9/local/lib/python2.7/site-packages/httplib2/__init__.py", line 1317, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/var/lib/jenkins/shiningpanda/jobs/2a430f4f/virtualenvs/d41d8cd9/local/lib/python2.7/site-packages/httplib2/__init__.py", line 1286, in _conn_request
    response = conn.getresponse()
  File "/usr/lib/python2.7/httplib.py", line 1018, in getresponse
    raise ResponseNotReady()
ResponseNotReady

Я думал, что у меня должен быть time.delay() между каждым HTTP-запросом?

Что вы, ребята, думаете и предлагаете мне сделать в этом случае, так как я все еще учусь в этом вопросе?

Спасибо за все предложения и помощь ;)

Основная идея кода, который я использую:

yt_service = gdata.youtube.service.YouTubeService()    
yt_service.email = '[email protected]'    
yt_service.password = 'password'

def GetAndPrintUserUploads(username):    
    yt_service = gdata.youtube.service.YouTubeService()    
    uri = 'http://gdata.youtube.com/feeds/api/users/%s/uploads' % username  
    PrintVideoFeed(yt_service.GetYouTubeVideoFeed(uri))

и для тестирования я аутентифицирую пользователя и печатаю загрузку пользователя несколько раз после этого подряд


person saruberoz    schedule 20.05.2013    source источник
comment
Ошибка, которую вы получаете, может иметь несколько причин, см. stackoverflow.com/questions/3231543 /. Пожалуйста, предоставьте актуальный код.   -  person alecxe    schedule 21.05.2013
comment
Фактический HTTP-ответ фактически выполняется через Youtube-API, поэтому я не мог предоставить фактический код. Не могли бы вы дать мне рекомендации о том, что вызывает ошибку HTTPResponseNotReady? Спасибо :)   -  person saruberoz    schedule 21.05.2013
comment
Не могли бы вы показать, какой код вы используете, как вы используете API YouTube? Будет полезно понять, что происходит на самом деле. Спасибо.   -  person alecxe    schedule 21.05.2013
comment
отредактировано, это в основном то, как я использовал API YouTube   -  person saruberoz    schedule 21.05.2013
comment
В общем, вы, вероятно, захотите избежать вызовов внешних серверов в своих модульных тестах. Это вызывает нестабильность тестов, делает их медленными и действительно невежливо (много обращений к серверу для быстрых циклов тестирования). Я бы рекомендовал издеваться над внешней службой в тесте вашего кода.   -  person dbn    schedule 20.08.2013