If a client specifies a range when requesting an object the server should
respond with 206 Partial Content when answering a request to get an object,
not 200 OK. It should also respond with only those bytes requested.
This commit introduces a test, test_ranged_request_response_code, that
checks those criteria.
def test_atomic_dual_write_8mb():
_test_atomic_dual_write(1024*1024*8)
+
+def test_ranged_request_response_code():
+ content = 'testcontent'
+
+ bucket = get_new_bucket()
+ key = bucket.new_key('testobj')
+ key.set_contents_from_string(content)
+
+ key.open('r', headers={'Range': 'bytes=4-7'})
+ status = key.resp.status
+ fetched_content = ''
+ for data in key:
+ fetched_content += data;
+ key.close()
+
+ eq(fetched_content, content[4:8])
+ eq(status, 206)
+