Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

elgohr/go-localstack

Repository files navigation

go-localstack

Test codecov CodeQL Go Report Card PkgGoDev License

Go Wrapper for using localstack in go testing

Installation

Please make sure that you have Docker installed.

go get github.com/elgohr/go-localstack

Usage

With SDK V2 (using EndpointResolverV2). Please have a look at resolvers for a complete list of resolvers.

func ExampleLocalstackSdkV2EndpointResolverV2(t *testing.T) {
 l, err := localstack.NewInstance()
 if err != nil {
 t.Fatalf("Could not connect to Docker %v", err)
 }
 if err := l.Start(); err != nil {
 t.Fatalf("Could not start localstack %v", err)
 }
 t.Cleanup(func() {
 if err := l.Stop(); err != nil {
 t.Fatalf("Could not stop localstack %v", err)
 }
 })
 
 cfg, err := config.LoadDefaultConfig(ctx,
 config.WithRegion("us-east-1"),
 config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("dummy", "dummy", "dummy")),
 )
 if err != nil {
 t.Fatalf("Could not get config %v", err)
 }
 resolver := localstack.NewDynamoDbResolverV2(i)
 client := dynamodb.NewFromConfig(cfg, dynamodb.WithEndpointResolverV2(resolver))
	
 myTestWithV2Client(client)
}

With SDK V2 (using EndpointResolverV1)

func ExampleLocalstackSdkV2(t *testing.T) {
 l, err := localstack.NewInstance()
 if err != nil {
 t.Fatalf("Could not connect to Docker %v", err)
 }
 if err := l.Start(); err != nil {
 t.Fatalf("Could not start localstack %v", err)
 }
 t.Cleanup(func() {
 if err := l.Stop(); err != nil {
 t.Fatalf("Could not stop localstack %v", err)
 }
	})
 
 cfg, err := config.LoadDefaultConfig(ctx,
 config.WithRegion("us-east-1"),
 config.WithEndpointResolverWithOptions(aws.EndpointResolverWithOptionsFunc(func(_, _ string, _ ...interface{}) (aws.Endpoint, error) {
 return aws.Endpoint{
			 PartitionID: "aws", 
			 URL: l.EndpointV2(localstack.SQS), 
			 SigningRegion: "us-east-1", 
			 HostnameImmutable: true,
		 }, nil
 })),
 config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("dummy", "dummy", "dummy")),
 )
 if err != nil {
 t.Fatalf("Could not get config %v", err)
 }
 
 myTestWithV2(cfg)
}

With SDK V1

func TestWithLocalStack(t *testing.T) {
 l, err := localstack.NewInstance()
 if err != nil {
 t.Fatalf("Could not connect to Docker %v", err)
 }
 if err := l.Start(); err != nil {
 t.Fatalf("Could not start localstack %v", err)
 }
 t.Cleanup(func() {
 if err := l.Stop(); err != nil {
 t.Fatalf("Could not stop localstack %v", err)
 }
 })
 myTestWith(&aws.Config{
 Credentials: credentials.NewStaticCredentials("not", "empty", ""),
 DisableSSL: aws.Bool(true),
 Region: aws.String(endpoints.UsWest1RegionID),
 Endpoint: aws.String(l.Endpoint(localstack.SQS)),
 })
}

AltStyle によって変換されたページ (->オリジナル) /