Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Mock
Ruby
Branch: master
Pull request Compare This branch is 3 commits ahead of jreeves:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
pkg
spec
.gitignore
Gemfile
LICENSE
README.rdoc
Rakefile
VERSION
mock-aws-s3.gemspec

README.rdoc

mock-aws-s3

This is a simple gem for mocking out the AWS::S3 library, so that no calls to the Amazon S3 service during tests.

Usage is simple, just add the gem to your bundle, and require it in your spec_helper.rb:

require 'mock-aws-s3'

From there on, all (supported) calls to AWS::S3::S3Object will be proxied to file operations in a temp directory on your disk. So these commands:

AWS::S3::S3Object.store 'key', 'some data', 'bucket'
AWS::S3::S3Object.exists?('key', 'bucket')
AWS::S3::S3Object.value 'key', 'bucket'
AWS::S3::S3Object.url_for 'key', 'bucket'
AWS::S3::S3Object.delete('key', 'bucket')

… will result in a file being created on disk at ./tmp/mock-aws-s3/bucket/key, with contents: "some data". A File.exists?() check will be performed on that file, the content of the file will be returned, a local file uri will be return and then it will be deleted.

If you are using Rails, the Rails.root directory will be used: Rails.root.join('tmp').

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add spec for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2010 Joshua Krall. See LICENSE for details.

Something went wrong with that request. Please try again.