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 import requests
from openstack import session
from openstack.tests import base from openstack.tests import base
from openstack import transport
fake_url = 'http://www.root.url' 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): def stub_url(self, method, base_url=None, **kwargs):
if not base_url: if not base_url:
@@ -76,12 +76,12 @@ class TestSessionBase(base.TestCase):
self.assertEqual(body, resp.text) self.assertEqual(body, resp.text)
class TestSession(TestSessionBase): class TestTransport(TestTransportBase):
@httpretty.activate @httpretty.activate
def test_request(self): def test_request(self):
self.stub_url(httpretty.GET, body=fake_response) self.stub_url(httpretty.GET, body=fake_response)
sess = session.Session() sess = transport.Transport()
resp = sess.request('GET', fake_url) resp = sess.request('GET', fake_url)
self.assertEqual(httpretty.GET, httpretty.last_request().method) self.assertEqual(httpretty.GET, httpretty.last_request().method)
self.assertResponseOK(resp, body=fake_response) self.assertResponseOK(resp, body=fake_response)
@@ -89,7 +89,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_request_json(self): def test_request_json(self):
self.stub_url(httpretty.GET, json=fake_record1) self.stub_url(httpretty.GET, json=fake_record1)
sess = session.Session() sess = transport.Transport()
resp = sess.request('GET', fake_url) resp = sess.request('GET', fake_url)
self.assertEqual(httpretty.GET, httpretty.last_request().method) self.assertEqual(httpretty.GET, httpretty.last_request().method)
self.assertResponseOK(resp, body=json.dumps(fake_record1)) self.assertResponseOK(resp, body=json.dumps(fake_record1))
@@ -98,7 +98,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_delete(self): def test_delete(self):
self.stub_url(httpretty.DELETE, body=fake_response) self.stub_url(httpretty.DELETE, body=fake_response)
sess = session.Session() sess = transport.Transport()
resp = sess.delete(fake_url) resp = sess.delete(fake_url)
self.assertEqual(httpretty.DELETE, httpretty.last_request().method) self.assertEqual(httpretty.DELETE, httpretty.last_request().method)
self.assertResponseOK(resp, body=fake_response) self.assertResponseOK(resp, body=fake_response)
@@ -106,7 +106,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_get(self): def test_get(self):
self.stub_url(httpretty.GET, body=fake_response) self.stub_url(httpretty.GET, body=fake_response)
sess = session.Session() sess = transport.Transport()
resp = sess.get(fake_url) resp = sess.get(fake_url)
self.assertEqual(httpretty.GET, httpretty.last_request().method) self.assertEqual(httpretty.GET, httpretty.last_request().method)
self.assertResponseOK(resp, body=fake_response) self.assertResponseOK(resp, body=fake_response)
@@ -114,7 +114,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_head(self): def test_head(self):
self.stub_url(httpretty.HEAD, body=fake_response) self.stub_url(httpretty.HEAD, body=fake_response)
sess = session.Session() sess = transport.Transport()
resp = sess.head(fake_url) resp = sess.head(fake_url)
self.assertEqual(httpretty.HEAD, httpretty.last_request().method) self.assertEqual(httpretty.HEAD, httpretty.last_request().method)
self.assertResponseOK(resp, body='') self.assertResponseOK(resp, body='')
@@ -122,7 +122,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_options(self): def test_options(self):
self.stub_url(httpretty.OPTIONS, body=fake_response) self.stub_url(httpretty.OPTIONS, body=fake_response)
sess = session.Session() sess = transport.Transport()
resp = sess.options(fake_url) resp = sess.options(fake_url)
self.assertEqual(httpretty.OPTIONS, httpretty.last_request().method) self.assertEqual(httpretty.OPTIONS, httpretty.last_request().method)
self.assertResponseOK(resp, body=fake_response) self.assertResponseOK(resp, body=fake_response)
@@ -130,7 +130,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_patch(self): def test_patch(self):
self.stub_url(httpretty.PATCH, body=fake_response) self.stub_url(httpretty.PATCH, body=fake_response)
sess = session.Session() sess = transport.Transport()
resp = sess.patch(fake_url, json=fake_record2) resp = sess.patch(fake_url, json=fake_record2)
self.assertEqual(httpretty.PATCH, httpretty.last_request().method) self.assertEqual(httpretty.PATCH, httpretty.last_request().method)
self.assertEqual( self.assertEqual(
@@ -142,7 +142,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_post(self): def test_post(self):
self.stub_url(httpretty.POST, body=fake_response) self.stub_url(httpretty.POST, body=fake_response)
sess = session.Session() sess = transport.Transport()
resp = sess.post(fake_url, json=fake_record2) resp = sess.post(fake_url, json=fake_record2)
self.assertEqual(httpretty.POST, httpretty.last_request().method) self.assertEqual(httpretty.POST, httpretty.last_request().method)
self.assertEqual( self.assertEqual(
@@ -154,7 +154,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_put(self): def test_put(self):
self.stub_url(httpretty.PUT, body=fake_response) self.stub_url(httpretty.PUT, body=fake_response)
sess = session.Session() sess = transport.Transport()
resp = sess.put(fake_url, data=fake_request) resp = sess.put(fake_url, data=fake_request)
self.assertEqual(httpretty.PUT, httpretty.last_request().method) self.assertEqual(httpretty.PUT, httpretty.last_request().method)
@@ -175,11 +175,14 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_user_agent_no_arg(self): def test_user_agent_no_arg(self):
self.stub_url(httpretty.GET, body=fake_response) self.stub_url(httpretty.GET, body=fake_response)
sess = session.Session() sess = transport.Transport()
resp = sess.get(fake_url) resp = sess.get(fake_url)
self.assertTrue(resp.ok) 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}) resp = sess.get(fake_url, headers={'User-Agent': None})
self.assertTrue(resp.ok) self.assertTrue(resp.ok)
@@ -232,11 +235,14 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_user_agent_arg_none(self): def test_user_agent_arg_none(self):
self.stub_url(httpretty.GET, body=fake_response) 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) resp = sess.get(fake_url)
self.assertTrue(resp.ok) 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}) resp = sess.get(fake_url, headers={'User-Agent': None})
self.assertTrue(resp.ok) self.assertTrue(resp.ok)
@@ -289,7 +295,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_user_agent_arg_default(self): def test_user_agent_arg_default(self):
self.stub_url(httpretty.GET, body=fake_response) 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) resp = sess.get(fake_url)
self.assertTrue(resp.ok) self.assertTrue(resp.ok)
@@ -344,28 +350,28 @@ class TestSession(TestSessionBase):
self.assertRequestHeaderEqual('User-Agent', 'overrides-agent') self.assertRequestHeaderEqual('User-Agent', 'overrides-agent')
def test_verify_no_arg(self): def test_verify_no_arg(self):
sess = session.Session() sess = transport.Transport()
self.assertTrue(sess.verify) self.assertTrue(sess.verify)
def test_verify_arg_none(self): def test_verify_arg_none(self):
sess = session.Session(verify=None) sess = transport.Transport(verify=None)
self.assertIsNone(sess.verify) self.assertIsNone(sess.verify)
def test_verify_arg_false(self): def test_verify_arg_false(self):
sess = session.Session(verify=False) sess = transport.Transport(verify=False)
self.assertFalse(sess.verify) self.assertFalse(sess.verify)
def test_verify_arg_true(self): def test_verify_arg_true(self):
sess = session.Session(verify=True) sess = transport.Transport(verify=True)
self.assertTrue(sess.verify) self.assertTrue(sess.verify)
def test_verify_arg_file(self): def test_verify_arg_file(self):
sess = session.Session(verify='ca-file') sess = transport.Transport(verify='ca-file')
self.assertEqual('ca-file', sess.verify) self.assertEqual('ca-file', sess.verify)
@httpretty.activate @httpretty.activate
def test_not_found(self): def test_not_found(self):
sess = session.Session() sess = transport.Transport()
self.stub_url(httpretty.GET, status=404) self.stub_url(httpretty.GET, status=404)
resp = sess.get(fake_url) resp = sess.get(fake_url)
@@ -374,7 +380,7 @@ class TestSession(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_server_error(self): def test_server_error(self):
sess = session.Session() sess = transport.Transport()
self.stub_url(httpretty.GET, status=500) self.stub_url(httpretty.GET, status=500)
resp = sess.get(fake_url) resp = sess.get(fake_url)
@@ -382,10 +388,10 @@ class TestSession(TestSessionBase):
self.assertEqual(500, resp.status_code) self.assertEqual(500, resp.status_code)
class TestSessionDebug(TestSessionBase): class TestTransportDebug(TestTransportBase):
def setUp(self): def setUp(self):
super(TestSessionDebug, self).setUp() super(TestTransportDebug, self).setUp()
self.log_fixture = self.useFixture( self.log_fixture = self.useFixture(
fixtures.FakeLogger(level=logging.DEBUG), fixtures.FakeLogger(level=logging.DEBUG),
@@ -394,7 +400,7 @@ class TestSessionDebug(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_debug_post(self): def test_debug_post(self):
self.stub_url(httpretty.POST, body=fake_response) self.stub_url(httpretty.POST, body=fake_response)
sess = session.Session() sess = transport.Transport()
headers = { headers = {
'User-Agent': 'fake-curl', 'User-Agent': 'fake-curl',
'X-Random-Header': 'x-random-value', 'X-Random-Header': 'x-random-value',
@@ -434,7 +440,7 @@ class TestSessionDebug(TestSessionBase):
self.assertIn(v, self.log_fixture.output) self.assertIn(v, self.log_fixture.output)
class TestSessionRedirects(TestSessionBase): class TestTransportRedirects(TestTransportBase):
REDIRECT_CHAIN = [ REDIRECT_CHAIN = [
'http://myhost:3445/', 'http://myhost:3445/',
@@ -468,21 +474,21 @@ class TestSessionRedirects(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_get_redirect(self): def test_get_redirect(self):
self.setup_redirects() self.setup_redirects()
sess = session.Session() sess = transport.Transport()
resp = sess.get(self.REDIRECT_CHAIN[-2]) resp = sess.get(self.REDIRECT_CHAIN[-2])
self.assertResponseOK(resp) self.assertResponseOK(resp)
@httpretty.activate @httpretty.activate
def test_post_keeps_correct_method(self): def test_post_keeps_correct_method(self):
self.setup_redirects(method=httpretty.POST, status=301) self.setup_redirects(method=httpretty.POST, status=301)
sess = session.Session() sess = transport.Transport()
resp = sess.post(self.REDIRECT_CHAIN[-2]) resp = sess.post(self.REDIRECT_CHAIN[-2])
self.assertResponseOK(resp) self.assertResponseOK(resp)
@httpretty.activate @httpretty.activate
def test_redirect_forever(self): def test_redirect_forever(self):
self.setup_redirects() self.setup_redirects()
sess = session.Session() sess = transport.Transport()
resp = sess.get(self.REDIRECT_CHAIN[0]) resp = sess.get(self.REDIRECT_CHAIN[0])
self.assertResponseOK(resp) self.assertResponseOK(resp)
# Request history length is 1 less than the source chain due to the # Request history length is 1 less than the source chain due to the
@@ -492,7 +498,7 @@ class TestSessionRedirects(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_no_redirect(self): def test_no_redirect(self):
self.setup_redirects() self.setup_redirects()
sess = session.Session(redirect=False) sess = transport.Transport(redirect=False)
resp = sess.get(self.REDIRECT_CHAIN[0]) resp = sess.get(self.REDIRECT_CHAIN[0])
self.assertEqual(305, resp.status_code) self.assertEqual(305, resp.status_code)
self.assertEqual(self.REDIRECT_CHAIN[0], resp.url) self.assertEqual(self.REDIRECT_CHAIN[0], resp.url)
@@ -501,7 +507,7 @@ class TestSessionRedirects(TestSessionBase):
def test_redirect_limit(self): def test_redirect_limit(self):
self.setup_redirects() self.setup_redirects()
for i in (1, 2): for i in (1, 2):
sess = session.Session(redirect=i) sess = transport.Transport(redirect=i)
resp = sess.get(self.REDIRECT_CHAIN[0]) resp = sess.get(self.REDIRECT_CHAIN[0])
self.assertResponseOK(resp, status=305, body=fake_redirect) self.assertResponseOK(resp, status=305, body=fake_redirect)
self.assertEqual(self.REDIRECT_CHAIN[i], resp.url) self.assertEqual(self.REDIRECT_CHAIN[i], resp.url)
@@ -509,7 +515,7 @@ class TestSessionRedirects(TestSessionBase):
@httpretty.activate @httpretty.activate
def test_history_matches_requests(self): def test_history_matches_requests(self):
self.setup_redirects(status=301) self.setup_redirects(status=301)
sess = session.Session(redirect=True) sess = transport.Transport(redirect=True)
req_resp = requests.get( req_resp = requests.get(
self.REDIRECT_CHAIN[0], self.REDIRECT_CHAIN[0],
allow_redirects=True, 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 - log all requests and responses at debug level
- json-encode request body passed in to request() in json keyword arg - 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 user_agent at Transport creation; set to None to skip the header
- set default verify at Session creation - set default verify at Transport creation
""" """
@@ -34,7 +34,7 @@ DEFAULT_USER_AGENT = 'python-OpenStackSDK/' + openstack.__version__
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
class Session(requests.Session): class Transport(requests.Session):
_user_agent = DEFAULT_USER_AGENT _user_agent = DEFAULT_USER_AGENT
@@ -70,7 +70,7 @@ class Session(requests.Session):
""" """
super(Session, self).__init__() super(Transport, self).__init__()
if user_agent: if user_agent:
self._user_agent = user_agent self._user_agent = user_agent
self.verify = verify 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 # POSTs as GETs for certain statuses which is not want we want for an
# API. See: https://en.wikipedia.org/wiki/Post/Redirect/Get # 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) self._log_response(resp)