]> git-server-git.apps.pok.os.sepia.ceph.com Git - s3-tests.git/commitdiff
Test half-open range requests 15/head
authorAndrew Gaul <andrew@gaul.org>
Tue, 12 Aug 2014 19:25:56 +0000 (12:25 -0700)
committerAndrew Gaul <andrew@gaul.org>
Tue, 12 Aug 2014 19:26:27 +0000 (12:26 -0700)
s3tests/functional/test_s3.py

index 44db1f191f38cfe5288067fe81546240b8cda8ae..741cd62fc8d668b95e41cfff4c2991450f27bf8f 100644 (file)
@@ -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