Skip to content

Commit 8c41089

Browse files
committed
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
1 parent 947c2a6 commit 8c41089

3 files changed

Lines changed: 14 additions & 10 deletions

File tree

openstack/resource.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ def __init__(self, attrs=None, loaded=False):
125125
self._dirty = set() if loaded else set(attrs.keys())
126126
self._loaded = loaded
127127

128+
def __repr__(self):
129+
return "%s: %s" % (self.resource_key, self._attrs)
130+
128131
##
129132
# CONSTRUCTORS
130133
##
@@ -288,8 +291,8 @@ def delete_by_id(cls, session, r_id):
288291
if not cls.allow_delete:
289292
raise exceptions.MethodNotSupported('delete')
290293

291-
session.delete(utils.urljoin(cls.base_path, r_id), service=cls.service,
292-
accept=None)
294+
url = utils.urljoin(cls.base_path, r_id)
295+
session.delete(url, service=cls.service, accept=None)
293296

294297
def delete(self, session):
295298
self.delete_by_id(session, self.id)

openstack/tests/test_transport.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525

2626
fake_request = 'Now is the time...'
27-
fake_response = 'for the quick brown fox...'
27+
fake_response = '{"response": "for the quick brown fox..."}'
2828
fake_redirect = 'redirect text'
2929

3030
fake_record1 = {
@@ -77,9 +77,9 @@ def test_get(self):
7777

7878
@httpretty.activate
7979
def test_head(self):
80-
self.stub_url(httpretty.HEAD, body=fake_response)
80+
self.stub_url(httpretty.HEAD, body='')
8181
xport = transport.Transport()
82-
resp = xport.head(self.TEST_URL)
82+
resp = xport.head(self.TEST_URL, accept=None)
8383
self.assertEqual(httpretty.HEAD, httpretty.last_request().method)
8484
self.assertResponseOK(resp, body='')
8585

@@ -141,7 +141,7 @@ def test_request_accept(self):
141141
fake_record1_str = json.dumps(fake_record1)
142142
self.stub_url(httpretty.POST, body=fake_record1_str)
143143
xport = transport.Transport()
144-
resp = xport.post(self.TEST_URL, json=fake_record2)
144+
resp = xport.post(self.TEST_URL, json=fake_record2, accept=None)
145145
self.assertRequestHeaderEqual('Accept', '*/*')
146146
self.assertEqual(fake_record1, resp.json())
147147

@@ -478,7 +478,7 @@ def test_redirect_forever(self):
478478
def test_no_redirect(self):
479479
self.setup_redirects()
480480
xport = transport.Transport(redirect=False)
481-
resp = xport.get(self.REDIRECT_CHAIN[0])
481+
resp = xport.get(self.REDIRECT_CHAIN[0], accept=None)
482482
self.assertEqual(305, resp.status_code)
483483
self.assertEqual(self.REDIRECT_CHAIN[0], resp.url)
484484

@@ -487,7 +487,7 @@ def test_redirect_limit(self):
487487
self.setup_redirects()
488488
for i in (1, 2):
489489
xport = transport.Transport(redirect=i)
490-
resp = xport.get(self.REDIRECT_CHAIN[0])
490+
resp = xport.get(self.REDIRECT_CHAIN[0], accept=None)
491491
self.assertResponseOK(resp, status=305, body=fake_redirect)
492492
self.assertEqual(self.REDIRECT_CHAIN[i], resp.url)
493493

openstack/transport.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def __init__(
4949
user_agent=None,
5050
verify=True,
5151
redirect=DEFAULT_REDIRECT_LIMIT,
52-
accept=None,
52+
accept=JSON,
5353
):
5454
"""Wraps requests.Session to add some OpenStack-specific features
5555
@@ -153,7 +153,8 @@ def request(self, method, url, redirect=None, **kwargs):
153153
except requests.RequestException as e:
154154
raise exceptions.HttpException(six.text_type(e), details=resp.text)
155155
if accept == JSON:
156-
resp.body = resp.json()
156+
if not resp.is_redirect:
157+
resp.body = resp.json()
157158

158159
return resp
159160

0 commit comments

Comments
 (0)