forked from TrueCloudLab/s3-tests
Compatibility tests for S3 clones
86bfe40bd3
As per amazon s3 spec - https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-s3-bucket-naming-requirements.html The s3 bucket names should not contain upper case letters or underscore. Name cannot end with dash or have consecutive periods, or dashes adjacent to periods Name length shouldn't exceed 63 characters. These rules are being enforced via - https://github.com/ceph/ceph/pull/26787 This patch is to update the respective testcases as well. Note: check_invalid_bucket_name() seems to have been broken. It should try to create bucket using invalid name. Have addressed it in this patch. Because of this few testcases (which were incorrectly passing earlier) are failing in validate_bucket_name. Have marked them 'fails_on_rgw' as done for test_bucket_create_naming_bad_punctuation Signed-off-by: Soumya Koduri <skoduri@redhat.com> |
||
---|---|---|
s3tests | ||
s3tests_boto3 | ||
.gitignore | ||
bootstrap | ||
LICENSE | ||
README.rst | ||
request_decision_graph.yml | ||
requirements.txt | ||
s3tests.conf.SAMPLE | ||
setup.py | ||
siege.conf |
======================== S3 compatibility tests ======================== This is a set of unofficial Amazon AWS S3 compatibility tests, that can be useful to people implementing software that exposes an S3-like API. The tests use the Boto2 and Boto3 libraries. The tests use the Nose test framework. To get started, ensure you have the ``virtualenv`` software installed; e.g. on Debian/Ubuntu:: sudo apt-get install python-virtualenv and then run:: ./bootstrap You will need to create a configuration file with the location of the service and two different credentials. A sample configuration file named ``s3tests.conf.SAMPLE`` has been provided in this repo. This file can be used to run the s3 tests on a Ceph cluster started with vstart. Once you have that file copied and edited, you can run the tests with:: S3TEST_CONF=your.conf ./virtualenv/bin/nosetests You can specify which directory of tests to run:: S3TEST_CONF=your.conf ./virtualenv/bin/nosetests s3tests.functional You can specify which file of tests to run:: S3TEST_CONF=your.conf ./virtualenv/bin/nosetests s3tests.functional.test_s3 You can specify which test to run:: S3TEST_CONF=your.conf ./virtualenv/bin/nosetests s3tests.functional.test_s3:test_bucket_list_empty To gather a list of tests being run, use the flags:: -v --collect-only Some tests have attributes set based on their current reliability and things like AWS not enforcing their spec stricly. You can filter tests based on their attributes:: S3TEST_CONF=aws.conf ./virtualenv/bin/nosetests -a '!fails_on_aws' Most of the tests have both Boto3 and Boto2 versions. Tests written in Boto2 are in the ``s3tests`` directory. Tests written in Boto3 are located in the ``s3test_boto3`` directory. You can run only the boto3 tests with:: S3TEST_CONF=your.conf ./virtualenv/bin/nosetests -v -s -A 'not fails_on_rgw' s3tests_boto3.functional