|
- package s3_test
-
- import (
- "github.com/goamz/goamz/aws"
- "github.com/goamz/goamz/s3"
- "github.com/goamz/goamz/s3/s3test"
- . "gopkg.in/check.v1"
- )
-
- type LocalServer struct {
- auth aws.Auth
- region aws.Region
- srv *s3test.Server
- config *s3test.Config
- }
-
- func (s *LocalServer) SetUp(c *C) {
- srv, err := s3test.NewServer(s.config)
- c.Assert(err, IsNil)
- c.Assert(srv, NotNil)
-
- s.srv = srv
- s.region = aws.Region{
- Name: "faux-region-1",
- S3Endpoint: srv.URL(),
- S3LocationConstraint: true, // s3test server requires a LocationConstraint
- }
- }
-
- // LocalServerSuite defines tests that will run
- // against the local s3test server. It includes
- // selected tests from ClientTests;
- // when the s3test functionality is sufficient, it should
- // include all of them, and ClientTests can be simply embedded.
- type LocalServerSuite struct {
- srv LocalServer
- clientTests ClientTests
- }
-
- var (
- // run tests twice, once in us-east-1 mode, once not.
- _ = Suite(&LocalServerSuite{
- srv: LocalServer{
- config: &s3test.Config{},
- },
- })
- _ = Suite(&LocalServerSuite{
- srv: LocalServer{
- config: &s3test.Config{
- Send409Conflict: true,
- },
- },
- })
- )
-
- func (s *LocalServerSuite) SetUpSuite(c *C) {
- s.srv.SetUp(c)
- s.clientTests.s3 = s3.New(s.srv.auth, s.srv.region)
-
- // TODO Sadly the fake server ignores auth completely right now. :-(
- s.clientTests.authIsBroken = true
- s.clientTests.Cleanup()
- }
-
- func (s *LocalServerSuite) TearDownTest(c *C) {
- s.clientTests.Cleanup()
- }
-
- func (s *LocalServerSuite) TestBasicFunctionality(c *C) {
- s.clientTests.TestBasicFunctionality(c)
- }
-
- func (s *LocalServerSuite) TestGetNotFound(c *C) {
- s.clientTests.TestGetNotFound(c)
- }
-
- func (s *LocalServerSuite) TestBucketList(c *C) {
- s.clientTests.TestBucketList(c)
- }
-
- func (s *LocalServerSuite) TestDoublePutBucket(c *C) {
- s.clientTests.TestDoublePutBucket(c)
- }
|