Skip to content

Commit

Permalink
Appease pylint / pep8.
Browse files Browse the repository at this point in the history
  • Loading branch information
tseaver committed Feb 19, 2015
1 parent 766d0fb commit af2a382
Showing 1 changed file with 33 additions and 37 deletions.
70 changes: 33 additions & 37 deletions gcloud/storage/test_batch.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,35 @@ def test_finish_empty(self):
self.assertRaises(ValueError, batch.finish)
self.assertTrue(connection.http is http)

def test_finish_nonempty(self):
def _check_subrequest_no_payload(self, chunk, method, url):
lines = chunk.splitlines()
# blank + 2 headers + blank + request + blank + blank
self.assertEqual(len(lines), 7)
self.assertEqual(lines[0], '')
self.assertEqual(lines[1], 'Content-Type: application/http')
self.assertEqual(lines[2], 'MIME-Version: 1.0')
self.assertEqual(lines[3], '')
self.assertEqual(lines[4], '%s %s HTTP/1.1' % (method, url))
self.assertEqual(lines[5], '')
self.assertEqual(lines[6], '')

def _check_subrequest_payload(self, chunk, method, url, payload):
import json
lines = chunk.splitlines()
# blank + 2 headers + blank + request + 2 headers + blank + body
payload_str = json.dumps(payload)
self.assertEqual(len(lines), 9)
self.assertEqual(lines[0], '')
self.assertEqual(lines[1], 'Content-Type: application/http')
self.assertEqual(lines[2], 'MIME-Version: 1.0')
self.assertEqual(lines[3], '')
self.assertEqual(lines[4], '%s %s HTTP/1.1' % (method, url))
self.assertEqual(lines[5], 'Content-Length: %d' % len(payload_str))
self.assertEqual(lines[6], 'Content-Type: application/json')
self.assertEqual(lines[7], '')
self.assertEqual(json.loads(lines[8]), payload)

def test_finish_nonempty(self):
URL = 'http://api.example.com/other_api'
expected = _Response()
expected['Content-Type'] = 'multipart/mixed; boundary="DEADBEEF="'
Expand All @@ -188,7 +215,7 @@ def test_finish_nonempty(self):
self.assertEqual(uri, 'http://api.example.com/batch')
self.assertEqual(len(headers), 2)
ctype, boundary = [x.strip()
for x in headers['Content-Type'].split(';')]
for x in headers['Content-Type'].split(';')]
self.assertEqual(ctype, 'multipart/mixed')
self.assertTrue(boundary.startswith('boundary="=='))
self.assertTrue(boundary.endswith('=="'))
Expand All @@ -198,43 +225,12 @@ def test_finish_nonempty(self):
chunks = body.split(divider)[1:-1] # discard prolog / epilog
self.assertEqual(len(chunks), 3)

lines = chunks[0].splitlines()
# blank + 2 headers + blank + request + 2 headers + blank + body
self.assertEqual(len(lines), 9)
self.assertEqual(lines[0], '')
self.assertEqual(lines[1], 'Content-Type: application/http')
self.assertEqual(lines[2], 'MIME-Version: 1.0')
self.assertEqual(lines[3], '')
self.assertEqual(lines[4], 'POST %s HTTP/1.1' % URL)
self.assertEqual(lines[5], 'Content-Length: 20')
self.assertEqual(lines[6], 'Content-Type: application/json')
self.assertEqual(lines[7], '')
self.assertEqual(json.loads(lines[8]), {'foo': 1, 'bar': 2})

lines = chunks[1].splitlines()
# blank + 2 headers + blank + request + 2 headers + blank + body
self.assertEqual(len(lines), 9)
self.assertEqual(lines[0], '')
self.assertEqual(lines[1], 'Content-Type: application/http')
self.assertEqual(lines[2], 'MIME-Version: 1.0')
self.assertEqual(lines[3], '')
self.assertEqual(lines[4], 'PATCH %s HTTP/1.1' % URL)
self.assertEqual(lines[5], 'Content-Length: 10')
self.assertEqual(lines[6], 'Content-Type: application/json')
self.assertEqual(lines[7], '')
self.assertEqual(json.loads(lines[8]), {'bar': 3})
self._check_subrequest_payload(chunks[0], 'POST', URL,
{'foo': 1, 'bar': 2})

lines = chunks[2].splitlines()
# blank + 2 headers + blank + request + 2 headers + blank + body
self.assertEqual(len(lines), 7)
self.assertEqual(lines[0], '')
self.assertEqual(lines[1], 'Content-Type: application/http')
self.assertEqual(lines[2], 'MIME-Version: 1.0')
self.assertEqual(lines[3], '')
self.assertEqual(lines[4], 'DELETE %s HTTP/1.1' % URL)
self.assertEqual(lines[5], '')
self.assertEqual(lines[6], '')
self._check_subrequest_payload(chunks[1], 'PATCH', URL, {'bar': 3})

self._check_subrequest_no_payload(chunks[2], 'DELETE', URL)

def test_finish_nonempty_non_multipart_response(self):
URL = 'http://api.example.com/other_api'
Expand Down

0 comments on commit af2a382

Please sign in to comment.