8000 GitHub - Tubbz-alt/s3-tests: Compatibility tests for S3 clones
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Tubbz-alt/s3-tests

 
 

Repository files navigation

S3 compatibility tests

This is a set of completely unofficial Amazon AWS S3 compatibility tests, that will hopefully be useful to people implementing software that exposes an S3-like API.

The tests only cover the REST interface.

TODO: test direct HTTP downloads, like a web browser would do.

The tests use the Boto library, so any e.g. HTTP-level differences that Boto papers over, the tests will not be able t 6064 o discover. Raw HTTP tests may be added later.

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, something like this:

[DEFAULT]
## this section is just used as default for all the "s3 *"
## sections, you can place these variables also directly there

## replace with e.g. "localhost" to run against local software
host = s3.amazonaws.com

## uncomment the port to use something other than 80
# port = 8080

## say "no" to disable TLS
is_secure = yes

[fixtures]
## all the buckets created will start with this prefix;
## {random} will be filled with random characters to pad
## the prefix to 30 characters long, and avoid collisions
bucket prefix = YOURNAMEHERE-{random}-

[s3 main]
## the tests assume two accounts are defined, "main" and "alt".

## user_id is a 64-character hexstring
user_id = 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

## display name typically looks more like a unix login, "jdoe" etc
display_name = youruseridhere

## replace these with your access keys
access_key = ABCDEFGHIJKLMNOPQRST
secret_key = abcdefghijklmnopqrstuvwxyzabcdefghijklmn

[s3 alt]
## another user account, used for ACL-related tests
user_id = 56789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234
display_name = john.doe
## the "alt" user needs to have email set, too
email = john.doe@example.com
access_key = NOPQRSTUVWXYZABCDEFG
secret_key = nopqrstuvwxyzabcdefghijklmnabcdefghijklm

Once you have that, you can run the tests with:

S3TEST_CONF=your.conf ./virtualenv/bin/nosetests

You can specify what test(s) to run:

S3TEST_CONF=your.conf ./virtualenv/bin/nosetests s3tests.functional.test_s3:test_object_acl_grant_public_read

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'

TODO

About

Compatibility tests for S3 clones

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.4%
  • Shell 0.6%
0