cassette icon indicating copy to clipboard operation
cassette copied to clipboard

Issue with `[email protected]`

Open twolfson opened this issue 10 years ago • 1 comments

The latest requests is incompatible with cassette for HTTP requests. When running the test suite, we receive complaints about self.sock not existing:

nosetests
.........EEE.........EEE.........EEE.............................EEE......SSSSSSSS...
======================================================================
ERROR: Test that normal HTTP requests work using requests.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/underdog/github/cassette/cassette/tests/test_cassette.py", line 314, in test_requestslib_http
    resp = self.helper_requestslib(TEST_URL)
  File "/home/underdog/github/cassette/cassette/tests/test_cassette.py", line 305, in helper_requestslib
    r1 = requests.get(url)
  File "/home/underdog/.virtualenvs/cassette/local/lib/python2.7/site-packages/requests/api.py", line 65, in get
    return request('get', url, **kwargs)
  File "/home/underdog/.virtualenvs/cassette/local/lib/python2.7/site-packages/requests/api.py", line 53, in request
    session.close()
  File "/home/underdog/.virtualenvs/cassette/local/lib/python2.7/site-packages/requests/sessions.py", line 651, in close
    v.close()
  File "/home/underdog/.virtualenvs/cassette/local/lib/python2.7/site-packages/requests/adapters.py", line 261, in close
    self.poolmanager.clear()
  File "/home/underdog/.virtualenvs/cassette/local/lib/python2.7/site-packages/requests/packages/urllib3/poolmanager.py", line 91, in clear
    self.pools.clear()
  File "/home/underdog/.virtualenvs/cassette/local/lib/python2.7/site-packages/requests/packages/urllib3/_collections.py", line 93, in clear
    self.dispose_func(value)
  File "/home/underdog/.virtualenvs/cassette/local/lib/python2.7/site-packages/requests/packages/urllib3/poolmanager.py", line 65, in <lambda>
    dispose_func=lambda p: p.close())
  File "/home/underdog/.virtualenvs/cassette/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 378, in close
    conn.close()
  File "/usr/lib/python2.7/httplib.py", line 779, in close
    if self.sock:
AttributeError: 'UL3CassetteHTTPConnection' object has no attribute 'sock'
-------------------- >> begin captured logging << --------------------
requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): 127.0.0.1
cassette: INFO: File '/home/underdog/github/cassette/cassette/tests/data/responses.temp' does not exist.
cassette: WARNING: Library does not have 'httplib:GET 127.0.0.1:5000/index a5cd67e00e8b59c018bdce7e0aa5a581 None'
cassette: WARNING: Making external HTTP request: httplib:GET 127.0.0.1:5000/index a5cd67e00e8b59c018bdce7e0aa5a581 None
werkzeug: INFO: 127.0.0.1 - - [12/Feb/2015 19:53:15] "GET /index HTTP/1.1" 200 -
requests.packages.urllib3.connectionpool: DEBUG: "GET /index HTTP/1.1" 200 0
requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): 127.0.0.1
cassette: INFO: Library has 'httplib:GET 127.0.0.1:5000/index a5cd67e00e8b59c018bdce7e0aa5a581 None'
requests.packages.urllib3.connectionpool: DEBUG: "GET /index HTTP/1.1" 200 0
--------------------- >> end captured logging << ---------------------

Overwriting self.sock as None instead of deleteing it seems to work as a quick patch but we should find a better solution.

twolfson avatar Feb 13 '15 01:02 twolfson

I have a working solution for requests==2.5.1. However, I have run out of time to work on getting a backwards compatible version working. The solution for requests==2.5.1 can be found at:

https://github.com/underdogio/cassette/compare/f7631f0d4022db8c35839cad3b9a04ea69a85565

twolfson avatar Feb 13 '15 18:02 twolfson