Merge lp:~elachuni/piston-mini-client/304-is-valid-response-status into lp:piston-mini-client

Proposed by Anthony Lenton
Status: Merged
Merged at revision: 22
Proposed branch: lp:~elachuni/piston-mini-client/304-is-valid-response-status
Merge into: lp:piston-mini-client
Diff against target: 47 lines (+13/-2)
3 files modified
.bzrignore (+1/-1)
piston_mini_client/__init__.py (+1/-1)
piston_mini_client/test/test_resource.py (+11/-0)
To merge this branch: bzr merge lp:~elachuni/piston-mini-client/304-is-valid-response-status
Reviewer Review Type Date Requested Status
Michael Nelson Approve
Review via email: mp+44339@code.launchpad.net

Description of the change

This branch avoids 304 responses from the server being raised as APIErrors.
Also, a test was added for the full list of valid status codes.

To post a comment you must log in.
Revision history for this message
Michael Nelson (michael.nelson) wrote :

Nice - isn't Mock great ;)

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.bzrignore'
--- .bzrignore 2010-11-17 01:33:04 +0000
+++ .bzrignore 2010-12-21 13:51:12 +0000
@@ -1,3 +1,3 @@
1.coverage1.coverage
2cover2htmlcov
3doc/_build3doc/_build
44
=== modified file 'piston_mini_client/__init__.py'
--- piston_mini_client/__init__.py 2010-12-09 21:02:11 +0000
+++ piston_mini_client/__init__.py 2010-12-21 13:51:12 +0000
@@ -178,7 +178,7 @@
178 raise APIError('Unable to connect to %s' % self._service_root)178 raise APIError('Unable to connect to %s' % self._service_root)
179 else:179 else:
180 raise180 raise
181 if response['status'] not in ['200', '201']:181 if response['status'] not in ['200', '201', '304']:
182 raise APIError('%s: %s\n-----\n%s' % (response['status'],182 raise APIError('%s: %s\n-----\n%s' % (response['status'],
183 response, body))183 response, body))
184 return response, body184 return response, body
185185
=== modified file 'piston_mini_client/test/test_resource.py'
--- piston_mini_client/test/test_resource.py 2010-12-09 21:02:11 +0000
+++ piston_mini_client/test/test_resource.py 2010-12-21 13:51:12 +0000
@@ -1,3 +1,4 @@
1from mock import patch
1from unittest import TestCase2from unittest import TestCase
2from wsgi_intercept import add_wsgi_intercept, remove_wsgi_intercept3from wsgi_intercept import add_wsgi_intercept, remove_wsgi_intercept
3from wsgi_intercept.httplib2_intercept import install, uninstall4from wsgi_intercept.httplib2_intercept import install, uninstall
@@ -75,6 +76,16 @@
75 self.assertEqual('/stew', self.called['path'])76 self.assertEqual('/stew', self.called['path'])
76 self.assertEqual('foo=bar', self.called['query'])77 self.assertEqual('foo=bar', self.called['query'])
7778
79 @patch('httplib2.Http.request')
80 def test_valid_status_codes_dont_raise_exception(self, mock_request):
81 for status in ['200', '201', '304']:
82 expected_response = {'status': status}
83 expected_body = '"hello world!"'
84 mock_request.return_value = (expected_response, expected_body)
85 api = self.CoffeeAPI()
86 response, body = api._get('/simmer')
87 self.assertEqual(expected_response, response)
88
78 def test_get_with_extra_args(self):89 def test_get_with_extra_args(self):
79 api = self.CoffeeAPI()90 api = self.CoffeeAPI()
80 api._get('/stew?zot=ping', args={'foo': 'bar'})91 api._get('/stew?zot=ping', args={'foo': 'bar'})

Subscribers

People subscribed via source and target branches