From: Andrew Gaul Date: Tue, 12 Aug 2014 19:25:56 +0000 (-0700) Subject: Test half-open range requests X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F15%2Fhead;p=s3-tests.git Test half-open range requests --- diff --git a/s3tests/functional/test_s3.py b/s3tests/functional/test_s3.py index 44db1f19..741cd62f 100644 --- a/s3tests/functional/test_s3.py +++ b/s3tests/functional/test_s3.py @@ -4747,6 +4747,50 @@ def test_ranged_request_response_code(): eq(fetched_content, content[4:8]) eq(status, 206) +@attr(resource='object') +@attr(method='get') +@attr(operation='range') +@attr(assertion='returns correct data, 206') +def test_ranged_request_skip_leading_bytes_response_code(): + content = 'testcontent' + + bucket = get_new_bucket() + key = bucket.new_key('testobj') + key.set_contents_from_string(content) + + # test trailing bytes + key.open('r', headers={'Range': 'bytes=4-'}) + status = key.resp.status + fetched_content = '' + for data in key: + fetched_content += data; + key.close() + + eq(fetched_content, content[4:]) + eq(status, 206) + +@attr(resource='object') +@attr(method='get') +@attr(operation='range') +@attr(assertion='returns correct data, 206') +def test_ranged_request_return_trailing_bytes_response_code(): + content = 'testcontent' + + bucket = get_new_bucket() + key = bucket.new_key('testobj') + key.set_contents_from_string(content) + + # test leading bytes + key.open('r', headers={'Range': 'bytes=-7'}) + status = key.resp.status + fetched_content = '' + for data in key: + fetched_content += data; + key.close() + + eq(fetched_content, content[-7:]) + eq(status, 206) + def check_can_test_multiregion(): if not targets.main.master or len(targets.main.secondaries) == 0: raise SkipTest