json default for transport and resource __repr__
Make json default for the transport and add a __repr__ method for the resource which will be useful for some basic printing. Change-Id: If006cbdaa5c50b948e118f3c8f5d5ab3c259905d
This commit is contained in:
parent
947c2a6fc2
commit
8c41089dea
|
@ -125,6 +125,9 @@ class Resource(collections.MutableMapping):
|
|||
self._dirty = set() if loaded else set(attrs.keys())
|
||||
self._loaded = loaded
|
||||
|
||||
def __repr__(self):
|
||||
return "%s: %s" % (self.resource_key, self._attrs)
|
||||
|
||||
##
|
||||
# CONSTRUCTORS
|
||||
##
|
||||
|
@ -288,8 +291,8 @@ class Resource(collections.MutableMapping):
|
|||
if not cls.allow_delete:
|
||||
raise exceptions.MethodNotSupported('delete')
|
||||
|
||||
session.delete(utils.urljoin(cls.base_path, r_id), service=cls.service,
|
||||
accept=None)
|
||||
url = utils.urljoin(cls.base_path, r_id)
|
||||
session.delete(url, service=cls.service, accept=None)
|
||||
|
||||
def delete(self, session):
|
||||
self.delete_by_id(session, self.id)
|
||||
|
|
|
@ -24,7 +24,7 @@ from openstack import transport
|
|||
|
||||
|
||||
fake_request = 'Now is the time...'
|
||||
fake_response = 'for the quick brown fox...'
|
||||
fake_response = '{"response": "for the quick brown fox..."}'
|
||||
fake_redirect = 'redirect text'
|
||||
|
||||
fake_record1 = {
|
||||
|
@ -77,9 +77,9 @@ class TestTransport(base.TestTransportBase):
|
|||
|
||||
@httpretty.activate
|
||||
def test_head(self):
|
||||
self.stub_url(httpretty.HEAD, body=fake_response)
|
||||
self.stub_url(httpretty.HEAD, body='')
|
||||
xport = transport.Transport()
|
||||
resp = xport.head(self.TEST_URL)
|
||||
resp = xport.head(self.TEST_URL, accept=None)
|
||||
self.assertEqual(httpretty.HEAD, httpretty.last_request().method)
|
||||
self.assertResponseOK(resp, body='')
|
||||
|
||||
|
@ -141,7 +141,7 @@ class TestTransport(base.TestTransportBase):
|
|||
fake_record1_str = json.dumps(fake_record1)
|
||||
self.stub_url(httpretty.POST, body=fake_record1_str)
|
||||
xport = transport.Transport()
|
||||
resp = xport.post(self.TEST_URL, json=fake_record2)
|
||||
resp = xport.post(self.TEST_URL, json=fake_record2, accept=None)
|
||||
self.assertRequestHeaderEqual('Accept', '*/*')
|
||||
self.assertEqual(fake_record1, resp.json())
|
||||
|
||||
|
@ -478,7 +478,7 @@ class TestTransportRedirects(base.TestTransportBase):
|
|||
def test_no_redirect(self):
|
||||
self.setup_redirects()
|
||||
xport = transport.Transport(redirect=False)
|
||||
resp = xport.get(self.REDIRECT_CHAIN[0])
|
||||
resp = xport.get(self.REDIRECT_CHAIN[0], accept=None)
|
||||
self.assertEqual(305, resp.status_code)
|
||||
self.assertEqual(self.REDIRECT_CHAIN[0], resp.url)
|
||||
|
||||
|
@ -487,7 +487,7 @@ class TestTransportRedirects(base.TestTransportBase):
|
|||
self.setup_redirects()
|
||||
for i in (1, 2):
|
||||
xport = transport.Transport(redirect=i)
|
||||
resp = xport.get(self.REDIRECT_CHAIN[0])
|
||||
resp = xport.get(self.REDIRECT_CHAIN[0], accept=None)
|
||||
self.assertResponseOK(resp, status=305, body=fake_redirect)
|
||||
self.assertEqual(self.REDIRECT_CHAIN[i], resp.url)
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ class Transport(requests.Session):
|
|||
user_agent=None,
|
||||
verify=True,
|
||||
redirect=DEFAULT_REDIRECT_LIMIT,
|
||||
accept=None,
|
||||
accept=JSON,
|
||||
):
|
||||
"""Wraps requests.Session to add some OpenStack-specific features
|
||||
|
||||
|
@ -153,7 +153,8 @@ class Transport(requests.Session):
|
|||
except requests.RequestException as e:
|
||||
raise exceptions.HttpException(six.text_type(e), details=resp.text)
|
||||
if accept == JSON:
|
||||
resp.body = resp.json()
|
||||
if not resp.is_redirect:
|
||||
resp.body = resp.json()
|
||||
|
||||
return resp
|
||||
|
||||
|
|
Loading…
Reference in New Issue