Compatibility tests for S3 clones
Find a file
Soumya Koduri 86bfe40bd3 Fix create_bucket tests as per new bucket naming conventions
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>
2019-07-02 12:52:42 +05:30
s3tests remove boto2 tests already passing in boto3 2019-05-02 11:27:20 -04:00
s3tests_boto3 Fix create_bucket tests as per new bucket naming conventions 2019-07-02 12:52:42 +05:30
.gitignore Say ".yaml" not ".yml". This is not MS-DOS, and YML is a Yahoo XML dialect. 2011-07-26 14:20:28 -07:00
bootstrap bootstrap: add libffi-dev for gevent 2018-05-31 00:30:53 +08:00
LICENSE MIT licensed. 2011-04-04 15:19:59 -07:00
README.rst boto3: Foundation laid for boto3 tests 2019-04-23 11:08:04 -04:00
request_decision_graph.yml fuzz: Write fuzzer rules for WebsiteConfiguration. 2015-06-14 22:11:42 -07:00
requirements.txt boto3: Foundation laid for boto3 tests 2019-04-23 11:08:04 -04:00
s3tests.conf.SAMPLE boto3: Foundation laid for boto3 tests 2019-04-23 11:08:04 -04:00
setup.py boto3: Foundation laid for boto3 tests 2019-04-23 11:08:04 -04:00
siege.conf dho-qa: Add siege config file and document running siege 2011-07-08 11:27:56 -07:00

========================
 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