Rename session to transport

Rename the requests.Session subclass because of the use of 'session'
in other places that doesn't match this usage.

Change-Id: I407045da12e86d9b1007429566bf30cf3c866720
This commit is contained in:
Dean Troyer 2014-04-15 22:33:04 -05:00
parent a60d43b70b
commit 49922f340c
2 changed files with 45 additions and 39 deletions

View File

@ -19,8 +19,8 @@ import httpretty
import requests
from openstack import session
from openstack.tests import base
from openstack import transport
fake_url = 'http://www.root.url'
@ -41,7 +41,7 @@ fake_record2 = {
}
class TestSessionBase(base.TestCase):
class TestTransportBase(base.TestCase):
def stub_url(self, method, base_url=None, **kwargs):
if not base_url:
@ -76,12 +76,12 @@ class TestSessionBase(base.TestCase):
self.assertEqual(body, resp.text)
class TestSession(TestSessionBase):
class TestTransport(TestTransportBase):
@httpretty.activate
def test_request(self):
self.stub_url(httpretty.GET, body=fake_response)
sess = session.Session()
sess = transport.Transport()
resp = sess.request('GET', fake_url)
self.assertEqual(httpretty.GET, httpretty.last_request().method)
self.assertResponseOK(resp, body=fake_response)
@ -89,7 +89,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_request_json(self):
self.stub_url(httpretty.GET, json=fake_record1)
sess = session.Session()
sess = transport.Transport()
resp = sess.request('GET', fake_url)
self.assertEqual(httpretty.GET, httpretty.last_request().method)
self.assertResponseOK(resp, body=json.dumps(fake_record1))
@ -98,7 +98,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_delete(self):
self.stub_url(httpretty.DELETE, body=fake_response)
sess = session.Session()
sess = transport.Transport()
resp = sess.delete(fake_url)
self.assertEqual(httpretty.DELETE, httpretty.last_request().method)
self.assertResponseOK(resp, body=fake_response)
@ -106,7 +106,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_get(self):
self.stub_url(httpretty.GET, body=fake_response)
sess = session.Session()
sess = transport.Transport()
resp = sess.get(fake_url)
self.assertEqual(httpretty.GET, httpretty.last_request().method)
self.assertResponseOK(resp, body=fake_response)
@ -114,7 +114,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_head(self):
self.stub_url(httpretty.HEAD, body=fake_response)
sess = session.Session()
sess = transport.Transport()
resp = sess.head(fake_url)
self.assertEqual(httpretty.HEAD, httpretty.last_request().method)
self.assertResponseOK(resp, body='')
@ -122,7 +122,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_options(self):
self.stub_url(httpretty.OPTIONS, body=fake_response)
sess = session.Session()
sess = transport.Transport()
resp = sess.options(fake_url)
self.assertEqual(httpretty.OPTIONS, httpretty.last_request().method)
self.assertResponseOK(resp, body=fake_response)
@ -130,7 +130,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_patch(self):
self.stub_url(httpretty.PATCH, body=fake_response)
sess = session.Session()
sess = transport.Transport()
resp = sess.patch(fake_url, json=fake_record2)
self.assertEqual(httpretty.PATCH, httpretty.last_request().method)
self.assertEqual(
@ -142,7 +142,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_post(self):
self.stub_url(httpretty.POST, body=fake_response)
sess = session.Session()
sess = transport.Transport()
resp = sess.post(fake_url, json=fake_record2)
self.assertEqual(httpretty.POST, httpretty.last_request().method)
self.assertEqual(
@ -154,7 +154,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_put(self):
self.stub_url(httpretty.PUT, body=fake_response)
sess = session.Session()
sess = transport.Transport()
resp = sess.put(fake_url, data=fake_request)
self.assertEqual(httpretty.PUT, httpretty.last_request().method)
@ -175,11 +175,14 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_user_agent_no_arg(self):
self.stub_url(httpretty.GET, body=fake_response)
sess = session.Session()
sess = transport.Transport()
resp = sess.get(fake_url)
self.assertTrue(resp.ok)
self.assertRequestHeaderEqual('User-Agent', session.DEFAULT_USER_AGENT)
self.assertRequestHeaderEqual(
'User-Agent',
transport.DEFAULT_USER_AGENT,
)
resp = sess.get(fake_url, headers={'User-Agent': None})
self.assertTrue(resp.ok)
@ -232,11 +235,14 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_user_agent_arg_none(self):
self.stub_url(httpretty.GET, body=fake_response)
sess = session.Session(user_agent=None)
sess = transport.Transport(user_agent=None)
resp = sess.get(fake_url)
self.assertTrue(resp.ok)
self.assertRequestHeaderEqual('User-Agent', session.DEFAULT_USER_AGENT)
self.assertRequestHeaderEqual(
'User-Agent',
transport.DEFAULT_USER_AGENT,
)
resp = sess.get(fake_url, headers={'User-Agent': None})
self.assertTrue(resp.ok)
@ -289,7 +295,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_user_agent_arg_default(self):
self.stub_url(httpretty.GET, body=fake_response)
sess = session.Session(user_agent='test-agent')
sess = transport.Transport(user_agent='test-agent')
resp = sess.get(fake_url)
self.assertTrue(resp.ok)
@ -344,28 +350,28 @@ class TestSession(TestSessionBase):
self.assertRequestHeaderEqual('User-Agent', 'overrides-agent')
def test_verify_no_arg(self):
sess = session.Session()
sess = transport.Transport()
self.assertTrue(sess.verify)
def test_verify_arg_none(self):
sess = session.Session(verify=None)
sess = transport.Transport(verify=None)
self.assertIsNone(sess.verify)
def test_verify_arg_false(self):
sess = session.Session(verify=False)
sess = transport.Transport(verify=False)
self.assertFalse(sess.verify)
def test_verify_arg_true(self):
sess = session.Session(verify=True)
sess = transport.Transport(verify=True)
self.assertTrue(sess.verify)
def test_verify_arg_file(self):
sess = session.Session(verify='ca-file')
sess = transport.Transport(verify='ca-file')
self.assertEqual('ca-file', sess.verify)
@httpretty.activate
def test_not_found(self):
sess = session.Session()
sess = transport.Transport()
self.stub_url(httpretty.GET, status=404)
resp = sess.get(fake_url)
@ -374,7 +380,7 @@ class TestSession(TestSessionBase):
@httpretty.activate
def test_server_error(self):
sess = session.Session()
sess = transport.Transport()
self.stub_url(httpretty.GET, status=500)
resp = sess.get(fake_url)
@ -382,10 +388,10 @@ class TestSession(TestSessionBase):
self.assertEqual(500, resp.status_code)
class TestSessionDebug(TestSessionBase):
class TestTransportDebug(TestTransportBase):
def setUp(self):
super(TestSessionDebug, self).setUp()
super(TestTransportDebug, self).setUp()
self.log_fixture = self.useFixture(
fixtures.FakeLogger(level=logging.DEBUG),
@ -394,7 +400,7 @@ class TestSessionDebug(TestSessionBase):
@httpretty.activate
def test_debug_post(self):
self.stub_url(httpretty.POST, body=fake_response)
sess = session.Session()
sess = transport.Transport()
headers = {
'User-Agent': 'fake-curl',
'X-Random-Header': 'x-random-value',
@ -434,7 +440,7 @@ class TestSessionDebug(TestSessionBase):
self.assertIn(v, self.log_fixture.output)
class TestSessionRedirects(TestSessionBase):
class TestTransportRedirects(TestTransportBase):
REDIRECT_CHAIN = [
'http://myhost:3445/',
@ -468,21 +474,21 @@ class TestSessionRedirects(TestSessionBase):
@httpretty.activate
def test_get_redirect(self):
self.setup_redirects()
sess = session.Session()
sess = transport.Transport()
resp = sess.get(self.REDIRECT_CHAIN[-2])
self.assertResponseOK(resp)
@httpretty.activate
def test_post_keeps_correct_method(self):
self.setup_redirects(method=httpretty.POST, status=301)
sess = session.Session()
sess = transport.Transport()
resp = sess.post(self.REDIRECT_CHAIN[-2])
self.assertResponseOK(resp)
@httpretty.activate
def test_redirect_forever(self):
self.setup_redirects()
sess = session.Session()
sess = transport.Transport()
resp = sess.get(self.REDIRECT_CHAIN[0])
self.assertResponseOK(resp)
# Request history length is 1 less than the source chain due to the
@ -492,7 +498,7 @@ class TestSessionRedirects(TestSessionBase):
@httpretty.activate
def test_no_redirect(self):
self.setup_redirects()
sess = session.Session(redirect=False)
sess = transport.Transport(redirect=False)
resp = sess.get(self.REDIRECT_CHAIN[0])
self.assertEqual(305, resp.status_code)
self.assertEqual(self.REDIRECT_CHAIN[0], resp.url)
@ -501,7 +507,7 @@ class TestSessionRedirects(TestSessionBase):
def test_redirect_limit(self):
self.setup_redirects()
for i in (1, 2):
sess = session.Session(redirect=i)
sess = transport.Transport(redirect=i)
resp = sess.get(self.REDIRECT_CHAIN[0])
self.assertResponseOK(resp, status=305, body=fake_redirect)
self.assertEqual(self.REDIRECT_CHAIN[i], resp.url)
@ -509,7 +515,7 @@ class TestSessionRedirects(TestSessionBase):
@httpretty.activate
def test_history_matches_requests(self):
self.setup_redirects(status=301)
sess = session.Session(redirect=True)
sess = transport.Transport(redirect=True)
req_resp = requests.get(
self.REDIRECT_CHAIN[0],
allow_redirects=True,

View File

@ -15,8 +15,8 @@ Wrapper class for requests.Session adds some common OpenStack functionality
- log all requests and responses at debug level
- json-encode request body passed in to request() in json keyword arg
- set default user_agent at Session creation; set to None to skip the header
- set default verify at Session creation
- set default user_agent at Transport creation; set to None to skip the header
- set default verify at Transport creation
"""
@ -34,7 +34,7 @@ DEFAULT_USER_AGENT = 'python-OpenStackSDK/' + openstack.__version__
_logger = logging.getLogger(__name__)
class Session(requests.Session):
class Transport(requests.Session):
_user_agent = DEFAULT_USER_AGENT
@ -70,7 +70,7 @@ class Session(requests.Session):
"""
super(Session, self).__init__()
super(Transport, self).__init__()
if user_agent:
self._user_agent = user_agent
self.verify = verify
@ -141,7 +141,7 @@ class Session(requests.Session):
# POSTs as GETs for certain statuses which is not want we want for an
# API. See: https://en.wikipedia.org/wiki/Post/Redirect/Get
resp = super(Session, self).request(method, url, **kwargs)
resp = super(Transport, self).request(method, url, **kwargs)
self._log_response(resp)