From ab7b4eb03d51fa7408af2d6b5fec16ce8d15c18d Mon Sep 17 00:00:00 2001 From: Stephon Striplin Date: Tue, 26 Jul 2011 20:01:15 -0700 Subject: [PATCH] update Content-Length header tests * Add more tests * Add nose.with_setup on some tests --- s3tests/functional/test_headers.py | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/s3tests/functional/test_headers.py b/s3tests/functional/test_headers.py index 3450e03..dfd1983 100644 --- a/s3tests/functional/test_headers.py +++ b/s3tests/functional/test_headers.py @@ -193,6 +193,17 @@ def test_object_create_bad_contentlength_empty(): eq(e.error_code, None) +@nose.with_setup(teardown=_clear_custom_headers) +@attr('fails_on_dho') +def test_object_create_bad_contentlength_negative(): + key = _setup_bad_object({'Content-Length': -1}) + + e = assert_raises(boto.exception.S3ResponseError, key.set_contents_from_string, 'bar') + eq(e.status, 400) + eq(e.reason, 'Bad Request') + eq(e.error_code, None) + + @nose.with_setup(teardown=_clear_custom_headers) @attr('fails_on_dho') def test_object_create_bad_contentlength_zero(): @@ -204,6 +215,27 @@ def test_object_create_bad_contentlength_zero(): eq(e.error_code, 'BadDigest') +@nose.with_setup(teardown=_clear_custom_headers) +def test_object_create_bad_contentlength_none(): + key = _setup_bad_object(remove=('Content-Length',)) + + e = assert_raises(boto.exception.S3ResponseError, key.set_contents_from_string, 'bar') + eq(e.status, 411) + eq(e.reason, 'Length Required') + eq(e.error_code,'MissingContentLength') + + +@nose.with_setup(teardown=_clear_custom_headers) +@attr('fails_on_dho') +def test_object_create_bad_contentlength_utf8(): + key = _setup_bad_object({'Content-Length': '\x07'}) + + e = assert_raises(boto.exception.S3ResponseError, key.set_contents_from_string, 'bar') + eq(e.status, 400) + eq(e.reason, 'Bad Request') + eq(e.error_code, None) + + @nose.with_setup(teardown=_clear_custom_headers) @attr('fails_on_dho') def test_object_create_bad_contentlength_mismatch_above():