func (s *TableSuite) SetUpSuite(c *check.C) { setUpAuth(c) s.DynamoDBTest.TableDescriptionT = s.TableDescriptionT s.server = dynamodb.New(dynamodb_auth, dynamodb_region) pk, err := s.TableDescriptionT.BuildPrimaryKey() if err != nil { c.Skip(err.Error()) } s.table = s.server.NewTable(s.TableDescriptionT.TableName, pk) // Cleanup s.TearDownSuite(c) }
func NewDynamoStoreWithRegionObj(accessKey string, secretKey string, tableName string, region aws.Region, keyPairs ...[]byte) (*DynamoStore, error) { awsAuth := aws.Auth{ AccessKey: accessKey, SecretKey: secretKey, } server := dynamodb.New(awsAuth, region) table := server.NewTable(tableName, dynamodb.PrimaryKey{KeyAttribute: dynamodb.NewStringAttribute("Id", "")}) dynStore := &DynamoStore{ Table: table, Codecs: securecookie.CodecsFromPairs(keyPairs...), } return dynStore, nil }
func (s *ItemSuite) SetUpSuite(c *check.C) { setUpAuth(c) s.DynamoDBTest.TableDescriptionT = s.TableDescriptionT s.server = dynamodb.New(dynamodb_auth, dynamodb_region) pk, err := s.TableDescriptionT.BuildPrimaryKey() if err != nil { c.Skip(err.Error()) } s.table = s.server.NewTable(s.TableDescriptionT.TableName, pk) // Cleanup s.TearDownSuite(c) _, err = s.server.CreateTable(s.TableDescriptionT) if err != nil { c.Fatal(err) } s.WaitUntilStatus(c, "ACTIVE") }
func (s *QueryBuilderSuite) SetUpSuite(c *check.C) { auth := &aws.Auth{AccessKey: "", SecretKey: "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"} s.server = dynamodb.New(*auth, aws.USEast) }
func TestDynamoStore(t *testing.T) { var req *http.Request var rsp *httptest.ResponseRecorder var hdr http.Header var err error var ok bool var cookies []string var session *sessions.Session var flashes []interface{} // Copyright 2012 The Gorilla Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Create dummy table awsAuth := aws.Auth{ AccessKey: "dummy", SecretKey: "dummy", } server := dynamodb.New(awsAuth, aws.Region{Name: "eu-west-1", DynamoDBEndpoint: "http://127.0.0.1:8000"}) dummyTableName := randSeq(10) tableDesc := dynamodb.TableDescriptionT{ TableName: dummyTableName, AttributeDefinitions: []dynamodb.AttributeDefinitionT{ dynamodb.AttributeDefinitionT{"Id", "S"}, }, KeySchema: []dynamodb.KeySchemaT{ dynamodb.KeySchemaT{"Id", "HASH"}, }, ProvisionedThroughput: dynamodb.ProvisionedThroughputT{ ReadCapacityUnits: 1, WriteCapacityUnits: 1, }, } server.CreateTable(tableDesc) defer server.DeleteTable(tableDesc) // Round 1 ---------------------------------------------------------------- store, err := NewDynamoStoreWithRegionObj("dummy", "dummy", tableDesc.TableName, aws.Region{Name: "eu-west-1", DynamoDBEndpoint: "http://127.0.0.1:8000"}, []byte("secret-key")) if err != nil { t.Fatalf("Error creating dynamostore: %v", err) } req, _ = http.NewRequest("GET", "http://localhost:8080/", nil) rsp = httptest.NewRecorder() // Get a session. if session, err = store.Get(req, "session-key"); err != nil { t.Fatalf("Error getting session: %v", err) } // Get a flash. flashes = session.Flashes() if len(flashes) != 0 { t.Errorf("Expected empty flashes; Got %v", flashes) } // Add some flashes. session.AddFlash("foo") session.AddFlash("bar") // Custom key. session.AddFlash("baz", "custom_key") // Save. if err = sessions.Save(req, rsp); err != nil { t.Fatalf("Error saving session: %v", err) } hdr = rsp.Header() cookies, ok = hdr["Set-Cookie"] if !ok || len(cookies) != 1 { t.Fatalf("No cookies. Header:", hdr) } // Round 2 ---------------------------------------------------------------- req, _ = http.NewRequest("GET", "http://localhost:8080/", nil) req.Header.Add("Cookie", cookies[0]) rsp = httptest.NewRecorder() // Get a session. if session, err = store.Get(req, "session-key"); err != nil { t.Fatalf("Error getting session: %v", err) } // Check all saved values. flashes = session.Flashes() if len(flashes) != 2 { t.Fatalf("Expected flashes; Got %v", flashes) } if flashes[0] != "foo" || flashes[1] != "bar" { t.Errorf("Expected foo,bar; Got %v", flashes) } flashes = session.Flashes() if len(flashes) != 0 { t.Errorf("Expected dumped flashes; Got %v", flashes) } // Custom key. flashes = session.Flashes("custom_key") if len(flashes) != 1 { t.Errorf("Expected flashes; Got %v", flashes) } else if flashes[0] != "baz" { t.Errorf("Expected baz; Got %v", flashes) } flashes = session.Flashes("custom_key") if len(flashes) != 0 { t.Errorf("Expected dumped flashes; Got %v", flashes) } session.Options.MaxAge = -1 // Save. if err = sessions.Save(req, rsp); err != nil { t.Fatalf("Error saving session: %v", err) } // Round 3 ---------------------------------------------------------------- // Custom type req, _ = http.NewRequest("GET", "http://localhost:8080/", nil) rsp = httptest.NewRecorder() // Get a session. if session, err = store.Get(req, "session-key"); err != nil { t.Fatalf("Error getting session: %v", err) } // Get a flash. flashes = session.Flashes() if len(flashes) != 0 { t.Errorf("Expected empty flashes; Got %v", flashes) } // Add some flashes. session.AddFlash(&FlashMessage{42, "foo"}) // Save. if err = sessions.Save(req, rsp); err != nil { t.Fatalf("Error saving session: %v", err) } hdr = rsp.Header() cookies, ok = hdr["Set-Cookie"] if !ok || len(cookies) != 1 { t.Fatalf("No cookies. Header:", hdr) } // Round 4 ---------------------------------------------------------------- // Custom type req, _ = http.NewRequest("GET", "http://localhost:8080/", nil) req.Header.Add("Cookie", cookies[0]) rsp = httptest.NewRecorder() // Get a session. if session, err = store.Get(req, "session-key"); err != nil { t.Fatalf("Error getting session: %v", err) } // Check all saved values. flashes = session.Flashes() if len(flashes) != 1 { t.Fatalf("Expected flashes; Got %v", flashes) } custom := flashes[0].(FlashMessage) if custom.Type != 42 || custom.Message != "foo" { t.Errorf("Expected %#v, got %#v", FlashMessage{42, "foo"}, custom) } // Delete session. session.Options.MaxAge = -1 // Save. if err = sessions.Save(req, rsp); err != nil { t.Fatalf("Error saving session: %v", err) } }