mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-05-06 22:18:28 +00:00
Update Go AWS SDK to the latest version
This commit is contained in:
committed by
Andrey Smirnov
parent
d08be990ef
commit
94a72b23ff
4
vendor/github.com/aws/aws-sdk-go/awstesting/README.md
generated
vendored
Normal file
4
vendor/github.com/aws/aws-sdk-go/awstesting/README.md
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
## AWS SDK for Go awstesting packages ##
|
||||
`awstesting` is a collection of packages used internally by the SDK, and is subject to have breaking changes. This package is not `internal` so that if you really need to use its functionality, and understand breaking changes will be made, you are able to.
|
||||
|
||||
These packages will be refactored in the future so that the API generator and model parsers are exposed cleanly on their own.
|
||||
6
vendor/github.com/aws/aws-sdk-go/awstesting/cmd/bucket_cleanup/main.go
generated
vendored
6
vendor/github.com/aws/aws-sdk-go/awstesting/cmd/bucket_cleanup/main.go
generated
vendored
@@ -65,7 +65,7 @@ func deleteBucket(svc *s3.S3, bucket string) error {
|
||||
|
||||
objs, err := svc.ListObjects(&s3.ListObjectsInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to list bucket %q objects, %v", bucketName, err)
|
||||
return fmt.Errorf("failed to list bucket %q objects, %v", *bucketName, err)
|
||||
}
|
||||
|
||||
for _, o := range objs.Contents {
|
||||
@@ -74,7 +74,7 @@ func deleteBucket(svc *s3.S3, bucket string) error {
|
||||
|
||||
uploads, err := svc.ListMultipartUploads(&s3.ListMultipartUploadsInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to list bucket %q multipart objects, %v", bucketName, err)
|
||||
return fmt.Errorf("failed to list bucket %q multipart objects, %v", *bucketName, err)
|
||||
}
|
||||
|
||||
for _, u := range uploads.Uploads {
|
||||
@@ -87,7 +87,7 @@ func deleteBucket(svc *s3.S3, bucket string) error {
|
||||
|
||||
_, err = svc.DeleteBucket(&s3.DeleteBucketInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to delete bucket %q, %v", bucketName, err)
|
||||
return fmt.Errorf("failed to delete bucket %q, %v", *bucketName, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
// Package s3 runs integration tests for S3
|
||||
package s3
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
)
|
||||
|
||||
func TestWriteToObject(t *testing.T) {
|
||||
_, err := svc.PutObject(&s3.PutObjectInput{
|
||||
Bucket: bucketName,
|
||||
Key: aws.String("key name"),
|
||||
Body: bytes.NewReader([]byte("hello world")),
|
||||
})
|
||||
if err != nil {
|
||||
t.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
resp, err := svc.GetObject(&s3.GetObjectInput{
|
||||
Bucket: bucketName,
|
||||
Key: aws.String("key name"),
|
||||
})
|
||||
if err != nil {
|
||||
t.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
b, _ := ioutil.ReadAll(resp.Body)
|
||||
if e, a := []byte("hello world"), b; !reflect.DeepEqual(e, a) {
|
||||
t.Errorf("expect %v, got %v", e, a)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPresignedGetPut(t *testing.T) {
|
||||
putreq, _ := svc.PutObjectRequest(&s3.PutObjectInput{
|
||||
Bucket: bucketName,
|
||||
Key: aws.String("presigned-key"),
|
||||
})
|
||||
var err error
|
||||
|
||||
// Presign a PUT request
|
||||
var puturl string
|
||||
puturl, err = putreq.Presign(300 * time.Second)
|
||||
if err != nil {
|
||||
t.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
// PUT to the presigned URL with a body
|
||||
var puthttpreq *http.Request
|
||||
buf := bytes.NewReader([]byte("hello world"))
|
||||
puthttpreq, err = http.NewRequest("PUT", puturl, buf)
|
||||
if err != nil {
|
||||
t.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
var putresp *http.Response
|
||||
putresp, err = http.DefaultClient.Do(puthttpreq)
|
||||
if err != nil {
|
||||
t.Errorf("expect put with presign url no error, got %v", err)
|
||||
}
|
||||
if e, a := 200, putresp.StatusCode; e != a {
|
||||
t.Errorf("expect %v, got %v", e, a)
|
||||
}
|
||||
|
||||
// Presign a GET on the same URL
|
||||
getreq, _ := svc.GetObjectRequest(&s3.GetObjectInput{
|
||||
Bucket: bucketName,
|
||||
Key: aws.String("presigned-key"),
|
||||
})
|
||||
|
||||
var geturl string
|
||||
geturl, err = getreq.Presign(300 * time.Second)
|
||||
if err != nil {
|
||||
t.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
// Get the body
|
||||
var getresp *http.Response
|
||||
getresp, err = http.Get(geturl)
|
||||
if err != nil {
|
||||
t.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
var b []byte
|
||||
defer getresp.Body.Close()
|
||||
b, err = ioutil.ReadAll(getresp.Body)
|
||||
if e, a := "hello world", string(b); e != a {
|
||||
t.Errorf("expect %v, got %v", e, a)
|
||||
}
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package s3
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/md5"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"io"
|
||||
"testing"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
)
|
||||
|
||||
func base64Sum(content []byte) string {
|
||||
sum := md5.Sum(content)
|
||||
return base64.StdEncoding.EncodeToString(sum[:])
|
||||
}
|
||||
|
||||
func SkipTestContentMD5Validate(t *testing.T) {
|
||||
body := []byte("really cool body content")
|
||||
|
||||
cases := []struct {
|
||||
Name string
|
||||
Body []byte
|
||||
Sum64 string
|
||||
RangeGet []int64
|
||||
}{
|
||||
{
|
||||
Body: body,
|
||||
Sum64: base64Sum(body),
|
||||
Name: "contentMD5validation.pop",
|
||||
},
|
||||
{
|
||||
Body: []byte{},
|
||||
Sum64: base64Sum([]byte{}),
|
||||
Name: "contentMD5validation.empty",
|
||||
},
|
||||
{
|
||||
Body: body,
|
||||
Sum64: base64Sum(body),
|
||||
RangeGet: []int64{0, 9},
|
||||
Name: "contentMD5validation.range",
|
||||
},
|
||||
}
|
||||
|
||||
for i, c := range cases {
|
||||
keyName := aws.String(c.Name)
|
||||
req, _ := svc.PutObjectRequest(&s3.PutObjectInput{
|
||||
Bucket: bucketName,
|
||||
Key: keyName,
|
||||
Body: bytes.NewReader(c.Body),
|
||||
})
|
||||
|
||||
req.Build()
|
||||
if e, a := c.Sum64, req.HTTPRequest.Header.Get("Content-Md5"); e != a {
|
||||
t.Errorf("%d, expect %v sum, got %v", i, e, a)
|
||||
}
|
||||
|
||||
if err := req.Send(); err != nil {
|
||||
t.Fatalf("%d, expect no error, got %v", i, err)
|
||||
}
|
||||
|
||||
getObjIn := &s3.GetObjectInput{
|
||||
Bucket: bucketName,
|
||||
Key: keyName,
|
||||
}
|
||||
|
||||
expectBody := c.Body
|
||||
if c.RangeGet != nil {
|
||||
getObjIn.Range = aws.String(fmt.Sprintf("bytes=%d-%d", c.RangeGet[0], c.RangeGet[1]-1))
|
||||
expectBody = c.Body[c.RangeGet[0]:c.RangeGet[1]]
|
||||
}
|
||||
|
||||
getReq, getOut := svc.GetObjectRequest(getObjIn)
|
||||
|
||||
getReq.Build()
|
||||
if e, a := "append-md5", getReq.HTTPRequest.Header.Get("X-Amz-Te"); e != a {
|
||||
t.Errorf("%d, expect %v encoding, got %v", i, e, a)
|
||||
}
|
||||
if err := getReq.Send(); err != nil {
|
||||
t.Fatalf("%d, expect no error, got %v", i, err)
|
||||
}
|
||||
defer getOut.Body.Close()
|
||||
|
||||
if e, a := "append-md5", getReq.HTTPResponse.Header.Get("X-Amz-Transfer-Encoding"); e != a {
|
||||
t.Fatalf("%d, expect response tx encoding header %v, got %v", i, e, a)
|
||||
}
|
||||
|
||||
var readBody bytes.Buffer
|
||||
_, err := io.Copy(&readBody, getOut.Body)
|
||||
if err != nil {
|
||||
t.Fatalf("%d, expect no error, got %v", i, err)
|
||||
}
|
||||
|
||||
if e, a := expectBody, readBody.Bytes(); !bytes.Equal(e, a) {
|
||||
t.Errorf("%d, expect %v body, got %v", i, e, a)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package s3crypto provides gucumber integration tests support.
|
||||
package s3crypto
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/aws/aws-sdk-go/service/s3/s3crypto"
|
||||
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@s3crypto", func() {
|
||||
sess := session.New((&aws.Config{
|
||||
Region: aws.String("us-west-2"),
|
||||
}))
|
||||
encryptionClient := s3crypto.NewEncryptionClient(sess, nil, func(c *s3crypto.EncryptionClient) {
|
||||
})
|
||||
gucumber.World["encryptionClient"] = encryptionClient
|
||||
|
||||
decryptionClient := s3crypto.NewDecryptionClient(sess)
|
||||
gucumber.World["decryptionClient"] = decryptionClient
|
||||
|
||||
gucumber.World["client"] = s3.New(sess)
|
||||
})
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
# language: en
|
||||
@s3crypto @client
|
||||
Feature: S3 Integration Crypto Tests
|
||||
|
||||
Scenario: Uploading Go's SDK fixtures
|
||||
When I get all fixtures for "aes_gcm" from "aws-s3-shared-tests"
|
||||
Then I encrypt each fixture with "kms" "AWS_SDK_TEST_ALIAS" "us-west-2" and "aes_gcm"
|
||||
And upload "Go" data with folder "version_2"
|
||||
|
||||
Scenario: Uploading Go's SDK fixtures
|
||||
When I get all fixtures for "aes_cbc" from "aws-s3-shared-tests"
|
||||
Then I encrypt each fixture with "kms" "AWS_SDK_TEST_ALIAS" "us-west-2" and "aes_cbc"
|
||||
And upload "Go" data with folder "version_2"
|
||||
|
||||
Scenario: Get all plaintext fixtures for symmetric masterkey aes gcm
|
||||
When I get all fixtures for "aes_gcm" from "aws-s3-shared-tests"
|
||||
Then I decrypt each fixture against "Go" "version_2"
|
||||
And I compare the decrypted ciphertext to the plaintext
|
||||
|
||||
Scenario: Get all plaintext fixtures for symmetric masterkey aes cbc
|
||||
When I get all fixtures for "aes_cbc" from "aws-s3-shared-tests"
|
||||
Then I decrypt each fixture against "Go" "version_2"
|
||||
And I compare the decrypted ciphertext to the plaintext
|
||||
|
||||
Scenario: Get all plaintext fixtures for symmetric masterkey aes gcm
|
||||
When I get all fixtures for "aes_gcm" from "aws-s3-shared-tests"
|
||||
Then I decrypt each fixture against "Java" "version_2"
|
||||
And I compare the decrypted ciphertext to the plaintext
|
||||
|
||||
Scenario: Get all plaintext fixtures for symmetric masterkey aes cbc
|
||||
When I get all fixtures for "aes_cbc" from "aws-s3-shared-tests"
|
||||
Then I decrypt each fixture against "Java" "version_2"
|
||||
And I compare the decrypted ciphertext to the plaintext
|
||||
@@ -1,211 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
// Package s3crypto contains shared step definitions that are used across integration tests
|
||||
package s3crypto
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/base64"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
|
||||
"github.com/gucumber/gucumber"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/kms"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/aws/aws-sdk-go/service/s3/s3crypto"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.When(`^I get all fixtures for "(.+?)" from "(.+?)"$`,
|
||||
func(cekAlg, bucket string) {
|
||||
prefix := "plaintext_test_case_"
|
||||
baseFolder := "crypto_tests/" + cekAlg
|
||||
s3Client := gucumber.World["client"].(*s3.S3)
|
||||
|
||||
out, err := s3Client.ListObjects(&s3.ListObjectsInput{
|
||||
Bucket: aws.String(bucket),
|
||||
Prefix: aws.String(baseFolder + "/" + prefix),
|
||||
})
|
||||
if err != nil {
|
||||
gucumber.T.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
plaintexts := make(map[string][]byte)
|
||||
for _, obj := range out.Contents {
|
||||
plaintextKey := obj.Key
|
||||
ptObj, err := s3Client.GetObject(&s3.GetObjectInput{
|
||||
Bucket: aws.String(bucket),
|
||||
Key: plaintextKey,
|
||||
})
|
||||
if err != nil {
|
||||
gucumber.T.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
caseKey := strings.TrimPrefix(*plaintextKey, baseFolder+"/"+prefix)
|
||||
plaintext, err := ioutil.ReadAll(ptObj.Body)
|
||||
if err != nil {
|
||||
gucumber.T.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
plaintexts[caseKey] = plaintext
|
||||
}
|
||||
gucumber.World["baseFolder"] = baseFolder
|
||||
gucumber.World["bucket"] = bucket
|
||||
gucumber.World["plaintexts"] = plaintexts
|
||||
})
|
||||
|
||||
gucumber.Then(`^I decrypt each fixture against "(.+?)" "(.+?)"$`, func(lang, version string) {
|
||||
plaintexts := gucumber.World["plaintexts"].(map[string][]byte)
|
||||
baseFolder := gucumber.World["baseFolder"].(string)
|
||||
bucket := gucumber.World["bucket"].(string)
|
||||
prefix := "ciphertext_test_case_"
|
||||
s3Client := gucumber.World["client"].(*s3.S3)
|
||||
s3CryptoClient := gucumber.World["decryptionClient"].(*s3crypto.DecryptionClient)
|
||||
language := "language_" + lang
|
||||
|
||||
ciphertexts := make(map[string][]byte)
|
||||
for caseKey := range plaintexts {
|
||||
cipherKey := baseFolder + "/" + version + "/" + language + "/" + prefix + caseKey
|
||||
|
||||
// To get metadata for encryption key
|
||||
ctObj, err := s3Client.GetObject(&s3.GetObjectInput{
|
||||
Bucket: aws.String(bucket),
|
||||
Key: &cipherKey,
|
||||
})
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// We don't support wrap, so skip it
|
||||
if ctObj.Metadata["X-Amz-Wrap-Alg"] == nil || *ctObj.Metadata["X-Amz-Wrap-Alg"] != "kms" {
|
||||
continue
|
||||
}
|
||||
|
||||
ctObj, err = s3CryptoClient.GetObject(&s3.GetObjectInput{
|
||||
Bucket: aws.String(bucket),
|
||||
Key: &cipherKey,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
gucumber.T.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
ciphertext, err := ioutil.ReadAll(ctObj.Body)
|
||||
if err != nil {
|
||||
gucumber.T.Errorf("expect no error, got %v", err)
|
||||
}
|
||||
ciphertexts[caseKey] = ciphertext
|
||||
}
|
||||
gucumber.World["decrypted"] = ciphertexts
|
||||
})
|
||||
|
||||
gucumber.And(`^I compare the decrypted ciphertext to the plaintext$`, func() {
|
||||
plaintexts := gucumber.World["plaintexts"].(map[string][]byte)
|
||||
ciphertexts := gucumber.World["decrypted"].(map[string][]byte)
|
||||
for caseKey, ciphertext := range ciphertexts {
|
||||
if e, a := len(plaintexts[caseKey]), len(ciphertext); e != a {
|
||||
gucumber.T.Errorf("expect %v, got %v", e, a)
|
||||
}
|
||||
if e, a := plaintexts[caseKey], ciphertext; !bytes.Equal(e, a) {
|
||||
gucumber.T.Errorf("expect %v, got %v", e, a)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
gucumber.Then(`^I encrypt each fixture with "(.+?)" "(.+?)" "(.+?)" and "(.+?)"$`, func(kek, v1, v2, cek string) {
|
||||
var handler s3crypto.CipherDataGenerator
|
||||
var builder s3crypto.ContentCipherBuilder
|
||||
switch kek {
|
||||
case "kms":
|
||||
arn, err := getAliasInformation(v1, v2)
|
||||
if err != nil {
|
||||
gucumber.T.Errorf("expect nil, got %v", nil)
|
||||
}
|
||||
|
||||
b64Arn := base64.StdEncoding.EncodeToString([]byte(arn))
|
||||
if err != nil {
|
||||
gucumber.T.Errorf("expect nil, got %v", nil)
|
||||
}
|
||||
gucumber.World["Masterkey"] = b64Arn
|
||||
|
||||
handler = s3crypto.NewKMSKeyGenerator(kms.New(session.New(&aws.Config{
|
||||
Region: &v2,
|
||||
})), arn)
|
||||
if err != nil {
|
||||
gucumber.T.Errorf("expect nil, got %v", nil)
|
||||
}
|
||||
default:
|
||||
gucumber.T.Skip()
|
||||
}
|
||||
|
||||
switch cek {
|
||||
case "aes_gcm":
|
||||
builder = s3crypto.AESGCMContentCipherBuilder(handler)
|
||||
case "aes_cbc":
|
||||
builder = s3crypto.AESCBCContentCipherBuilder(handler, s3crypto.AESCBCPadder)
|
||||
default:
|
||||
gucumber.T.Skip()
|
||||
}
|
||||
|
||||
sess := session.New(&aws.Config{
|
||||
Region: aws.String("us-west-2"),
|
||||
})
|
||||
c := s3crypto.NewEncryptionClient(sess, builder, func(c *s3crypto.EncryptionClient) {
|
||||
})
|
||||
gucumber.World["encryptionClient"] = c
|
||||
gucumber.World["cek"] = cek
|
||||
})
|
||||
|
||||
gucumber.And(`^upload "(.+?)" data with folder "(.+?)"$`, func(language, folder string) {
|
||||
c := gucumber.World["encryptionClient"].(*s3crypto.EncryptionClient)
|
||||
cek := gucumber.World["cek"].(string)
|
||||
bucket := gucumber.World["bucket"].(string)
|
||||
plaintexts := gucumber.World["plaintexts"].(map[string][]byte)
|
||||
key := gucumber.World["Masterkey"].(string)
|
||||
for caseKey, plaintext := range plaintexts {
|
||||
input := &s3.PutObjectInput{
|
||||
Bucket: &bucket,
|
||||
Key: aws.String("crypto_tests/" + cek + "/" + folder + "/language_" + language + "/ciphertext_test_case_" + caseKey),
|
||||
Body: bytes.NewReader(plaintext),
|
||||
Metadata: map[string]*string{
|
||||
"Masterkey": &key,
|
||||
},
|
||||
}
|
||||
|
||||
_, err := c.PutObject(input)
|
||||
if err != nil {
|
||||
gucumber.T.Errorf("expect nil, got %v", nil)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func getAliasInformation(alias, region string) (string, error) {
|
||||
arn := ""
|
||||
svc := kms.New(session.New(&aws.Config{
|
||||
Region: ®ion,
|
||||
}))
|
||||
|
||||
truncated := true
|
||||
var marker *string
|
||||
for truncated {
|
||||
out, err := svc.ListAliases(&kms.ListAliasesInput{
|
||||
Marker: marker,
|
||||
})
|
||||
if err != nil {
|
||||
return arn, err
|
||||
}
|
||||
for _, aliasEntry := range out.Aliases {
|
||||
if *aliasEntry.AliasName == "alias/"+alias {
|
||||
return *aliasEntry.AliasArn, nil
|
||||
}
|
||||
}
|
||||
truncated = *out.Truncated
|
||||
marker = out.NextMarker
|
||||
}
|
||||
|
||||
return "", errors.New("The alias " + alias + " does not exist in your account. Please add the proper alias to a key")
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package s3manager
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration"
|
||||
"github.com/aws/aws-sdk-go/service/s3/s3manager"
|
||||
)
|
||||
|
||||
func TestGetBucketRegion(t *testing.T) {
|
||||
expectRegion := aws.StringValue(integration.Session.Config.Region)
|
||||
|
||||
ctx := aws.BackgroundContext()
|
||||
region, err := s3manager.GetBucketRegion(ctx, integration.Session,
|
||||
aws.StringValue(bucketName), expectRegion)
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("expect no error, got %v", err)
|
||||
}
|
||||
|
||||
if e, a := expectRegion, region; e != a {
|
||||
t.Errorf("expect %s bucket region, got %s", e, a)
|
||||
}
|
||||
}
|
||||
@@ -1,209 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
// Package s3manager provides integration tests for the service/s3/s3manager package
|
||||
package s3manager
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/md5"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/awserr"
|
||||
"github.com/aws/aws-sdk-go/aws/request"
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/aws/aws-sdk-go/service/s3/s3manager"
|
||||
)
|
||||
|
||||
var integBuf12MB = make([]byte, 1024*1024*12)
|
||||
var integMD512MB = fmt.Sprintf("%x", md5.Sum(integBuf12MB))
|
||||
var bucketName *string
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
if err := setup(); err != nil {
|
||||
panic(fmt.Sprintf("failed to setup integration test, %v", err))
|
||||
}
|
||||
|
||||
var result int
|
||||
|
||||
defer func() {
|
||||
if err := teardown(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "teardown failed, %v", err)
|
||||
}
|
||||
if r := recover(); r != nil {
|
||||
fmt.Println("S3Manager integration test hit a panic,", r)
|
||||
result = 1
|
||||
}
|
||||
os.Exit(result)
|
||||
}()
|
||||
|
||||
result = m.Run()
|
||||
}
|
||||
|
||||
func setup() error {
|
||||
svc := s3.New(integration.Session)
|
||||
|
||||
// Create a bucket for testing
|
||||
bucketName = aws.String(
|
||||
fmt.Sprintf("aws-sdk-go-integration-%s", integration.UniqueID()))
|
||||
|
||||
_, err := svc.CreateBucket(&s3.CreateBucketInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create bucket %q, %v", *bucketName, err)
|
||||
}
|
||||
|
||||
err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to wait for bucket %q to exist, %v", bucketName, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Delete the bucket
|
||||
func teardown() error {
|
||||
svc := s3.New(integration.Session)
|
||||
|
||||
objs, err := svc.ListObjects(&s3.ListObjectsInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to list bucket %q objects, %v", bucketName, err)
|
||||
}
|
||||
|
||||
for _, o := range objs.Contents {
|
||||
svc.DeleteObject(&s3.DeleteObjectInput{Bucket: bucketName, Key: o.Key})
|
||||
}
|
||||
|
||||
uploads, err := svc.ListMultipartUploads(&s3.ListMultipartUploadsInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to list bucket %q multipart objects, %v", bucketName, err)
|
||||
}
|
||||
|
||||
for _, u := range uploads.Uploads {
|
||||
svc.AbortMultipartUpload(&s3.AbortMultipartUploadInput{
|
||||
Bucket: bucketName,
|
||||
Key: u.Key,
|
||||
UploadId: u.UploadId,
|
||||
})
|
||||
}
|
||||
|
||||
_, err = svc.DeleteBucket(&s3.DeleteBucketInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to delete bucket %q, %v", bucketName, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
type dlwriter struct {
|
||||
buf []byte
|
||||
}
|
||||
|
||||
func newDLWriter(size int) *dlwriter {
|
||||
return &dlwriter{buf: make([]byte, size)}
|
||||
}
|
||||
|
||||
func (d dlwriter) WriteAt(p []byte, pos int64) (n int, err error) {
|
||||
if pos > int64(len(d.buf)) {
|
||||
return 0, io.EOF
|
||||
}
|
||||
|
||||
written := 0
|
||||
for i, b := range p {
|
||||
if i >= len(d.buf) {
|
||||
break
|
||||
}
|
||||
d.buf[pos+int64(i)] = b
|
||||
written++
|
||||
}
|
||||
return written, nil
|
||||
}
|
||||
|
||||
func validate(t *testing.T, key string, md5value string) {
|
||||
mgr := s3manager.NewDownloader(integration.Session)
|
||||
params := &s3.GetObjectInput{Bucket: bucketName, Key: &key}
|
||||
|
||||
w := newDLWriter(1024 * 1024 * 20)
|
||||
n, err := mgr.Download(w, params)
|
||||
if err != nil {
|
||||
t.Fatalf("expect no error, got %v", err)
|
||||
}
|
||||
if e, a := md5value, fmt.Sprintf("%x", md5.Sum(w.buf[0:n])); e != a {
|
||||
t.Errorf("expect %s md5 value, got %s", e, a)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUploadConcurrently(t *testing.T) {
|
||||
key := "12mb-1"
|
||||
mgr := s3manager.NewUploader(integration.Session)
|
||||
out, err := mgr.Upload(&s3manager.UploadInput{
|
||||
Bucket: bucketName,
|
||||
Key: &key,
|
||||
Body: bytes.NewReader(integBuf12MB),
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("expect no error, got %v", err)
|
||||
}
|
||||
if len(out.UploadID) == 0 {
|
||||
t.Errorf("expect upload ID but was empty")
|
||||
}
|
||||
|
||||
re := regexp.MustCompile(`^https?://.+/` + key + `$`)
|
||||
if e, a := re.String(), out.Location; !re.MatchString(a) {
|
||||
t.Errorf("expect %s to match URL regexp %q, did not", e, a)
|
||||
}
|
||||
|
||||
validate(t, key, integMD512MB)
|
||||
}
|
||||
|
||||
func TestUploadFailCleanup(t *testing.T) {
|
||||
svc := s3.New(integration.Session)
|
||||
|
||||
// Break checksum on 2nd part so it fails
|
||||
part := 0
|
||||
svc.Handlers.Build.PushBack(func(r *request.Request) {
|
||||
if r.Operation.Name == "UploadPart" {
|
||||
if part == 1 {
|
||||
r.HTTPRequest.Header.Set("X-Amz-Content-Sha256", "000")
|
||||
}
|
||||
part++
|
||||
}
|
||||
})
|
||||
|
||||
key := "12mb-leave"
|
||||
mgr := s3manager.NewUploaderWithClient(svc, func(u *s3manager.Uploader) {
|
||||
u.LeavePartsOnError = false
|
||||
})
|
||||
_, err := mgr.Upload(&s3manager.UploadInput{
|
||||
Bucket: bucketName,
|
||||
Key: &key,
|
||||
Body: bytes.NewReader(integBuf12MB),
|
||||
})
|
||||
if err == nil {
|
||||
t.Fatalf("expect error, but did not get one")
|
||||
}
|
||||
|
||||
aerr := err.(awserr.Error)
|
||||
if e, a := "MissingRegion", aerr.Code(); strings.Contains(a, e) {
|
||||
t.Errorf("expect %q to not be in error code %q", e, a)
|
||||
}
|
||||
|
||||
uploadID := ""
|
||||
merr := err.(s3manager.MultiUploadFailure)
|
||||
if uploadID = merr.UploadID(); len(uploadID) == 0 {
|
||||
t.Errorf("expect upload ID to not be empty, but was")
|
||||
}
|
||||
|
||||
_, err = svc.ListParts(&s3.ListPartsInput{
|
||||
Bucket: bucketName, Key: &key, UploadId: &uploadID,
|
||||
})
|
||||
if err == nil {
|
||||
t.Errorf("expect error for list parts, but got none")
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
package s3manager
|
||||
67
vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/shared_test.go
generated
vendored
67
vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/shared_test.go
generated
vendored
@@ -1,67 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
package s3
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
)
|
||||
|
||||
const integBucketPrefix = "aws-sdk-go-integration"
|
||||
|
||||
var bucketName *string
|
||||
var svc *s3.S3
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
setup()
|
||||
defer teardown() // only called if we panic
|
||||
|
||||
result := m.Run()
|
||||
teardown()
|
||||
os.Exit(result)
|
||||
}
|
||||
|
||||
// Create a bucket for testing
|
||||
func setup() {
|
||||
svc = s3.New(integration.Session)
|
||||
bucketName = aws.String(
|
||||
fmt.Sprintf("%s-%s",
|
||||
integBucketPrefix, integration.UniqueID()))
|
||||
|
||||
_, err := svc.CreateBucket(&s3.CreateBucketInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("failed to create bucket %s, %v", *bucketName, err))
|
||||
}
|
||||
|
||||
err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("failed waiting for bucket %s to be created", *bucketName))
|
||||
}
|
||||
}
|
||||
|
||||
// Delete the bucket
|
||||
func teardown() {
|
||||
resp, err := svc.ListObjects(&s3.ListObjectsInput{Bucket: bucketName})
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("failed to list s3 bucket %s objects, %v", *bucketName, err))
|
||||
}
|
||||
|
||||
errs := []error{}
|
||||
for _, o := range resp.Contents {
|
||||
_, err = svc.DeleteObject(&s3.DeleteObjectInput{Bucket: bucketName, Key: o.Key})
|
||||
if err != nil {
|
||||
errs = append(errs, err)
|
||||
}
|
||||
}
|
||||
|
||||
if len(errs) != 0 {
|
||||
panic(fmt.Sprintf("failed to delete objects, %s", errs))
|
||||
}
|
||||
|
||||
svc.DeleteBucket(&s3.DeleteBucketInput{Bucket: bucketName})
|
||||
}
|
||||
1
vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/stub.go
generated
vendored
1
vendor/github.com/aws/aws-sdk-go/awstesting/integration/customizations/s3/stub.go
generated
vendored
@@ -1 +0,0 @@
|
||||
package s3
|
||||
15
vendor/github.com/aws/aws-sdk-go/awstesting/integration/integration.go
generated
vendored
15
vendor/github.com/aws/aws-sdk-go/awstesting/integration/integration.go
generated
vendored
@@ -29,10 +29,6 @@ func init() {
|
||||
logLevel = aws.LogLevel(aws.LogDebugWithSigning | aws.LogDebugWithHTTPBody)
|
||||
}
|
||||
Session.Config.LogLevel = logLevel
|
||||
|
||||
if aws.StringValue(Session.Config.Region) == "" {
|
||||
panic("AWS_REGION must be configured to run integration tests")
|
||||
}
|
||||
}
|
||||
|
||||
// UniqueID returns a unique UUID-like identifier for use in generating
|
||||
@@ -42,3 +38,14 @@ func UniqueID() string {
|
||||
io.ReadFull(rand.Reader, uuid)
|
||||
return fmt.Sprintf("%x", uuid)
|
||||
}
|
||||
|
||||
// SessionWithDefaultRegion returns a copy of the integration session with the
|
||||
// region set if one was not already provided.
|
||||
func SessionWithDefaultRegion(region string) *session.Session {
|
||||
sess := Session.Copy()
|
||||
if v := aws.StringValue(sess.Config.Region); len(v) == 0 {
|
||||
sess.Config.Region = aws.String(region)
|
||||
}
|
||||
|
||||
return sess
|
||||
}
|
||||
|
||||
93
vendor/github.com/aws/aws-sdk-go/awstesting/integration/s3integ/shared.go
generated
vendored
Normal file
93
vendor/github.com/aws/aws-sdk-go/awstesting/integration/s3integ/shared.go
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
// +build integration
|
||||
|
||||
package s3integ
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
)
|
||||
|
||||
// BucketPrefix is the root prefix of integration test buckets.
|
||||
const BucketPrefix = "aws-sdk-go-integration"
|
||||
|
||||
// GenerateBucketName returns a unique bucket name.
|
||||
func GenerateBucketName() string {
|
||||
return fmt.Sprintf("%s-%s",
|
||||
BucketPrefix, integration.UniqueID())
|
||||
}
|
||||
|
||||
// SetupTest returns a test bucket created for the integration tests.
|
||||
func SetupTest(svc *s3.S3, bucketName string) (err error) {
|
||||
|
||||
fmt.Println("Setup: Creating test bucket,", bucketName)
|
||||
_, err = svc.CreateBucket(&s3.CreateBucketInput{Bucket: &bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create bucket %s, %v", bucketName, err)
|
||||
}
|
||||
|
||||
fmt.Println("Setup: Waiting for bucket to exist,", bucketName)
|
||||
err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{Bucket: &bucketName})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed waiting for bucket %s to be created, %v",
|
||||
bucketName, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CleanupTest deletes the contents of a S3 bucket, before deleting the bucket
|
||||
// it self.
|
||||
func CleanupTest(svc *s3.S3, bucketName string) error {
|
||||
errs := []error{}
|
||||
|
||||
fmt.Println("TearDown: Deleting objects from test bucket,", bucketName)
|
||||
err := svc.ListObjectsPages(
|
||||
&s3.ListObjectsInput{Bucket: &bucketName},
|
||||
func(page *s3.ListObjectsOutput, lastPage bool) bool {
|
||||
for _, o := range page.Contents {
|
||||
_, err := svc.DeleteObject(&s3.DeleteObjectInput{
|
||||
Bucket: &bucketName,
|
||||
Key: o.Key,
|
||||
})
|
||||
if err != nil {
|
||||
errs = append(errs, err)
|
||||
}
|
||||
}
|
||||
return true
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to list objects, %s, %v", bucketName, err)
|
||||
}
|
||||
|
||||
fmt.Println("TearDown: Deleting partial uploads from test bucket,", bucketName)
|
||||
err = svc.ListMultipartUploadsPages(
|
||||
&s3.ListMultipartUploadsInput{Bucket: &bucketName},
|
||||
func(page *s3.ListMultipartUploadsOutput, lastPage bool) bool {
|
||||
for _, u := range page.Uploads {
|
||||
svc.AbortMultipartUpload(&s3.AbortMultipartUploadInput{
|
||||
Bucket: &bucketName,
|
||||
Key: u.Key,
|
||||
UploadId: u.UploadId,
|
||||
})
|
||||
}
|
||||
return true
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to list multipart objects, %s, %v", bucketName, err)
|
||||
}
|
||||
|
||||
if len(errs) != 0 {
|
||||
return fmt.Errorf("failed to delete objects, %s", errs)
|
||||
}
|
||||
|
||||
fmt.Println("TearDown: Deleting test bucket,", bucketName)
|
||||
if _, err = svc.DeleteBucket(&s3.DeleteBucketInput{Bucket: &bucketName}); err != nil {
|
||||
return fmt.Errorf("failed to delete test bucket, %s", bucketName)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
14
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/acm/acm.feature
generated
vendored
14
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/acm/acm.feature
generated
vendored
@@ -1,14 +0,0 @@
|
||||
#language en
|
||||
@acm @client
|
||||
Feature: AWS Certificate Manager
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListCertificates" API
|
||||
Then the request should be successful
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetCertificate" API with:
|
||||
| CertificateArn | arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012 |
|
||||
Then I expect the response error code to be "ResourceNotFoundException"
|
||||
And I expect the response error message not be empty
|
||||
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/acm/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/acm/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package acm provides gucumber integration tests support.
|
||||
package acm
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/acm"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@acm", func() {
|
||||
gucumber.World["client"] = acm.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@apigateway @client
|
||||
Feature: Amazon API Gateway
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "GetAccountRequest" API
|
||||
Then the request should be successful
|
||||
|
||||
Scenario: Handing errors
|
||||
When I attempt to call the "GetRestApi" API with:
|
||||
| RestApiId | api123 |
|
||||
Then I expect the response error code to be "NotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Invalid REST API identifier specified
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/apigateway/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/apigateway/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package apigateway provides gucumber integration tests support.
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/apigateway"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@apigateway", func() {
|
||||
gucumber.World["client"] = apigateway.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
#language en
|
||||
@applicationdiscoveryservice @client
|
||||
Feature: AWS Application Discovery Service
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeAgents" API
|
||||
Then the request should be successful
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package applicationdiscoveryservice provides gucumber integration tests support.
|
||||
package applicationdiscoveryservice
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/applicationdiscoveryservice"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@applicationdiscoveryservice", func() {
|
||||
gucumber.World["client"] = applicationdiscoveryservice.New(
|
||||
smoke.Session, &aws.Config{Region: aws.String("us-west-2")},
|
||||
)
|
||||
})
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
# language: en
|
||||
@autoscaling @client
|
||||
Feature: Auto Scaling
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeScalingProcessTypes" API
|
||||
Then the value at "Processes" should be a list
|
||||
|
||||
Scenario: Handing errors
|
||||
When I attempt to call the "CreateLaunchConfiguration" API with:
|
||||
| LaunchConfigurationName | |
|
||||
| ImageId | ami-12345678 |
|
||||
| InstanceType | m1.small |
|
||||
Then I expect the response error code to be "InvalidParameter"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
LaunchConfigurationName
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/autoscaling/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/autoscaling/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package autoscaling provides gucumber integration tests support.
|
||||
package autoscaling
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/autoscaling"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@autoscaling", func() {
|
||||
gucumber.World["client"] = autoscaling.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
# language: en
|
||||
@autoscalingplans @client
|
||||
Feature: AWS Auto Scaling Plans
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeScalingPlans" API
|
||||
Then the request should be successful
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/autoscalingplans/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/autoscalingplans/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package autoscalingplans provides gucumber integration tests support.
|
||||
package autoscalingplans
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/autoscalingplans"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@autoscalingplans", func() {
|
||||
gucumber.World["client"] = autoscalingplans.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudformation/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudformation/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cloudformation provides gucumber integration tests support.
|
||||
package cloudformation
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cloudformation"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cloudformation", func() {
|
||||
gucumber.World["client"] = cloudformation.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
# language: en
|
||||
@cloudformation @client
|
||||
Feature: AWS CloudFormation
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListStacks" API
|
||||
Then the value at "StackSummaries" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "CreateStack" API with:
|
||||
| StackName | fakestack |
|
||||
| TemplateURL | http://s3.amazonaws.com/foo/bar |
|
||||
Then I expect the response error code to be "ValidationError"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
TemplateURL must reference a valid S3 object to which you have access.
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudfront/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudfront/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cloudfront provides gucumber integration tests support.
|
||||
package cloudfront
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cloudfront"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cloudfront", func() {
|
||||
gucumber.World["client"] = cloudfront.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
# language: en
|
||||
@cloudfront @client
|
||||
Feature: Amazon CloudFront
|
||||
|
||||
Scenario: Making a basic request
|
||||
When I call the "ListDistributions" API with:
|
||||
| MaxItems | 1 |
|
||||
Then the value at "DistributionList.Items" should be a list
|
||||
|
||||
Scenario: Error handling
|
||||
When I attempt to call the "GetDistribution" API with:
|
||||
| Id | fake-id |
|
||||
Then I expect the response error code to be "NoSuchDistribution"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
The specified distribution does not exist.
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudhsm/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudhsm/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cloudhsm provides gucumber integration tests support.
|
||||
package cloudhsm
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cloudhsm"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cloudhsm", func() {
|
||||
gucumber.World["client"] = cloudhsm.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudhsm/cloudhsm.feature
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudhsm/cloudhsm.feature
generated
vendored
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@cloudhsm @client
|
||||
Feature: Amazon CloudHSM
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListHapgs" API
|
||||
Then the value at "HapgList" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeHapg" API with:
|
||||
| HapgArn | bogus-arn |
|
||||
Then I expect the response error code to be "ValidationException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Value 'bogus-arn' at 'hapgArn' failed to satisfy constraint
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudhsmv2/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudhsmv2/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cloudhsmv2 provides gucumber integration tests support.
|
||||
package cloudhsmv2
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cloudhsmv2"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cloudhsmv2", func() {
|
||||
gucumber.World["client"] = cloudhsmv2.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
# language: en
|
||||
@cloudhsmv2 @client
|
||||
Feature: Amazon CloudHSMv2
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeBackups" API
|
||||
Then the request should be successful
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudsearch/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudsearch/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cloudsearch provides gucumber integration tests support.
|
||||
package cloudsearch
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cloudsearch"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cloudsearch", func() {
|
||||
gucumber.World["client"] = cloudsearch.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@cloudsearch @client
|
||||
Feature: Amazon CloudSearch
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeDomains" API
|
||||
Then the response should contain a "DomainStatusList"
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeIndexFields" API with:
|
||||
| DomainName | fakedomain |
|
||||
Then I expect the response error code to be "ResourceNotFound"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Domain not found: fakedomain
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudtrail/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudtrail/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cloudtrail provides gucumber integration tests support.
|
||||
package cloudtrail
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cloudtrail"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cloudtrail", func() {
|
||||
gucumber.World["client"] = cloudtrail.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
# language: en
|
||||
@cloudtrail @client
|
||||
Feature: AWS CloudTrail
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeTrails" API
|
||||
Then the request should be successful
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DeleteTrail" API with:
|
||||
| Name | faketrail |
|
||||
Then I expect the response error code to be "TrailNotFoundException"
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudwatch/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudwatch/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cloudwatch provides gucumber integration tests support.
|
||||
package cloudwatch
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cloudwatch"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cloudwatch", func() {
|
||||
gucumber.World["client"] = cloudwatch.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
# language: en
|
||||
@cloudwatch @monitoring @client
|
||||
Feature: Amazon CloudWatch
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListMetrics" API with:
|
||||
| Namespace | AWS/EC2 |
|
||||
Then the value at "Metrics" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "SetAlarmState" API with:
|
||||
| AlarmName | abc |
|
||||
| StateValue | mno |
|
||||
| StateReason | xyz |
|
||||
Then I expect the response error code to be "ValidationError"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
failed to satisfy constraint
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudwatchlogs/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cloudwatchlogs/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cloudwatchlogs provides gucumber integration tests support.
|
||||
package cloudwatchlogs
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cloudwatchlogs"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cloudwatchlogs", func() {
|
||||
gucumber.World["client"] = cloudwatchlogs.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
# language: en
|
||||
@cloudwatchlogs @logs
|
||||
Feature: Amazon CloudWatch Logs
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeLogGroups" API
|
||||
Then the value at "logGroups" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetLogEvents" API with:
|
||||
| logGroupName | fakegroup |
|
||||
| logStreamName | fakestream |
|
||||
Then I expect the response error code to be "ResourceNotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
The specified log group does not exist.
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/codecommit/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/codecommit/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package codecommit provides gucumber integration tests support.
|
||||
package codecommit
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/codecommit"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@codecommit", func() {
|
||||
gucumber.World["client"] = codecommit.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@codecommit @client
|
||||
Feature: Amazon CodeCommit
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListRepositories" API
|
||||
Then the value at "repositories" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "ListBranches" API with:
|
||||
| repositoryName | fake-repo |
|
||||
Then I expect the response error code to be "RepositoryDoesNotExistException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
fake-repo does not exist
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/codedeploy/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/codedeploy/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package codedeploy provides gucumber integration tests support.
|
||||
package codedeploy
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/codedeploy"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@codedeploy", func() {
|
||||
gucumber.World["client"] = codedeploy.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@codedeploy @client
|
||||
Feature: Amazon CodeDeploy
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListApplications" API
|
||||
Then the value at "applications" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetDeployment" API with:
|
||||
| deploymentId | d-USUAELQEX |
|
||||
Then I expect the response error code to be "DeploymentDoesNotExistException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
The deployment d-USUAELQEX could not be found
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/codepipeline/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/codepipeline/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package codepipeline provides gucumber integration tests support.
|
||||
package codepipeline
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/codepipeline"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@codepipeline", func() {
|
||||
gucumber.World["client"] = codepipeline.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@codepipeline @client
|
||||
Feature: Amazon CodePipeline
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListPipelines" API
|
||||
Then the value at "pipelines" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetPipeline" API with:
|
||||
| name | fake-pipeline |
|
||||
Then I expect the response error code to be "PipelineNotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
does not have a pipeline with name 'fake-pipeline'
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cognitoidentity/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cognitoidentity/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cognitoidentity provides gucumber integration tests support.
|
||||
package cognitoidentity
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cognitoidentity"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cognitoidentity", func() {
|
||||
gucumber.World["client"] = cognitoidentity.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
# language: en
|
||||
@cognitoidentity @client
|
||||
Feature: Amazon Cognito Idenity
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListIdentityPools" API with JSON:
|
||||
"""
|
||||
{"MaxResults": 10}
|
||||
"""
|
||||
Then the value at "IdentityPools" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeIdentityPool" API with:
|
||||
| IdentityPoolId | us-east-1:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
|
||||
Then I expect the response error code to be "ResourceNotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
IdentityPool 'us-east-1:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' not found
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cognitosync/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/cognitosync/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package cognitosync provides gucumber integration tests support.
|
||||
package cognitosync
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/cognitosync"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@cognitosync", func() {
|
||||
gucumber.World["client"] = cognitosync.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@cognitosync @client
|
||||
Feature: Amazon Cognito Sync
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListIdentityPoolUsage" API
|
||||
Then the value at "IdentityPoolUsages" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeIdentityPoolUsage" API with:
|
||||
| IdentityPoolId | us-east-1:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
|
||||
Then I expect the response error code to be "ResourceNotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
IdentityPool 'us-east-1:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' not found
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/configservice/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/configservice/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package configservice provides gucumber integration tests support.
|
||||
package configservice
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/configservice"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@configservice", func() {
|
||||
gucumber.World["client"] = configservice.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
# language: en
|
||||
@configservice @config @client
|
||||
Feature: AWS Config
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeConfigurationRecorders" API
|
||||
Then the value at "ConfigurationRecorders" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetResourceConfigHistory" API with:
|
||||
| resourceType | fake-type |
|
||||
| resourceId | fake-id |
|
||||
Then I expect the response error code to be "ValidationException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
failed to satisfy constraint
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/datapipeline/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/datapipeline/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package datapipeline provides gucumber integration tests support.
|
||||
package datapipeline
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/datapipeline"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@datapipeline", func() {
|
||||
gucumber.World["client"] = datapipeline.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@datapipeline @client
|
||||
Feature: AWS Data Pipeline
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListPipelines" API
|
||||
Then the response should contain a "pipelineIdList"
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetPipelineDefinition" API with:
|
||||
| pipelineId | fake-id |
|
||||
Then I expect the response error code to be "PipelineNotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
does not exist
|
||||
"""
|
||||
19
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/devicefarm/client.go
generated
vendored
19
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/devicefarm/client.go
generated
vendored
@@ -1,19 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package devicefarm provides gucumber integration tests support.
|
||||
package devicefarm
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/devicefarm"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@devicefarm", func() {
|
||||
// FIXME remove custom region
|
||||
gucumber.World["client"] = devicefarm.New(smoke.Session,
|
||||
aws.NewConfig().WithRegion("us-west-2"))
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@devicefarm @client
|
||||
Feature: AWS Device Farm
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListDevices" API
|
||||
Then the value at "devices" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetDevice" API with:
|
||||
| arn | arn:aws:devicefarm:us-west-2::device:000000000000000000000000fake-arn |
|
||||
Then I expect the response error code to be "NotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
No device was found for arn
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/directconnect/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/directconnect/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package directconnect provides gucumber integration tests support.
|
||||
package directconnect
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/directconnect"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@directconnect", func() {
|
||||
gucumber.World["client"] = directconnect.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@directconnect @client
|
||||
Feature: AWS Direct Connect
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeConnections" API
|
||||
Then the value at "connections" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeConnections" API with:
|
||||
| connectionId | fake-connection |
|
||||
Then I expect the response error code to be "DirectConnectClientException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Connection ID fake-connection has an invalid format
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/directoryservice/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/directoryservice/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package directoryservice provides gucumber integration tests support.
|
||||
package directoryservice
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/directoryservice"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@directoryservice", func() {
|
||||
gucumber.World["client"] = directoryservice.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
# language: en
|
||||
@directoryservice @ds @client
|
||||
Feature: AWS Directory Service
|
||||
|
||||
I want to use AWS Directory Service
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeDirectories" API
|
||||
Then the value at "DirectoryDescriptions" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "CreateDirectory" API with:
|
||||
| Name | |
|
||||
| Password | |
|
||||
| Size | |
|
||||
Then I expect the response error code to be "ValidationException"
|
||||
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/dynamodb/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/dynamodb/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package dynamodb provides gucumber integration tests support.
|
||||
package dynamodb
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/dynamodb"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@dynamodb", func() {
|
||||
gucumber.World["client"] = dynamodb.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
19
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/dynamodb/dynamodb.feature
generated
vendored
19
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/dynamodb/dynamodb.feature
generated
vendored
@@ -1,19 +0,0 @@
|
||||
# language: en
|
||||
@dynamodb @client
|
||||
Feature: Amazon DynamoDB
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListTables" API with JSON:
|
||||
"""
|
||||
{"Limit": 1}
|
||||
"""
|
||||
Then the value at "TableNames" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeTable" API with:
|
||||
| TableName | fake-table |
|
||||
Then I expect the response error code to be "ResourceNotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Requested resource not found: Table: fake-table not found
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/dynamodbstreams/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/dynamodbstreams/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package dynamodbstreams provides gucumber integration tests support.
|
||||
package dynamodbstreams
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/dynamodbstreams"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@dynamodbstreams", func() {
|
||||
gucumber.World["client"] = dynamodbstreams.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@dynamodbstreams @client
|
||||
Feature: Amazon DynamoDB Streams
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListStreams" API
|
||||
Then the value at "Streams" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeStream" API with:
|
||||
| StreamArn | fake-stream |
|
||||
Then I expect the response error code to be "InvalidParameter"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
StreamArn
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/ec2/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/ec2/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package ec2 provides gucumber integration tests support.
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@ec2", func() {
|
||||
gucumber.World["client"] = ec2.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
18
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/ec2/ec2.feature
generated
vendored
18
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/ec2/ec2.feature
generated
vendored
@@ -1,18 +0,0 @@
|
||||
# language: en
|
||||
@ec2 @client
|
||||
Feature: Amazon Elastic Compute Cloud
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeRegions" API
|
||||
Then the value at "Regions" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeInstances" API with JSON:
|
||||
"""
|
||||
{"InstanceIds": ["i-12345678"]}
|
||||
"""
|
||||
Then I expect the response error code to be "InvalidInstanceID.NotFound"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
The instance ID 'i-12345678' does not exist
|
||||
"""
|
||||
19
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/ecs/client.go
generated
vendored
19
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/ecs/client.go
generated
vendored
@@ -1,19 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package ecs provides gucumber integration tests support.
|
||||
package ecs
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/ecs"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@ecs", func() {
|
||||
// FIXME remove custom region
|
||||
gucumber.World["client"] = ecs.New(smoke.Session,
|
||||
aws.NewConfig().WithRegion("us-west-2"))
|
||||
})
|
||||
}
|
||||
14
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/ecs/ecs.feature
generated
vendored
14
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/ecs/ecs.feature
generated
vendored
@@ -1,14 +0,0 @@
|
||||
# language: en
|
||||
@ecs @client
|
||||
Feature: Amazon ECS
|
||||
|
||||
I want to use Amazon ECS
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListClusters" API
|
||||
Then the value at "clusterArns" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "StopTask" API with:
|
||||
| task | xxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxx |
|
||||
Then the error code should be "ClusterNotFoundException"
|
||||
19
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/efs/client.go
generated
vendored
19
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/efs/client.go
generated
vendored
@@ -1,19 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package efs provides gucumber integration tests support.
|
||||
package efs
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/efs"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@efs", func() {
|
||||
// FIXME remove custom region
|
||||
gucumber.World["client"] = efs.New(smoke.Session,
|
||||
aws.NewConfig().WithRegion("us-west-2"))
|
||||
})
|
||||
}
|
||||
14
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/efs/efs.feature
generated
vendored
14
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/efs/efs.feature
generated
vendored
@@ -1,14 +0,0 @@
|
||||
# language: en
|
||||
@efs @elasticfilesystem @client
|
||||
Feature: Amazon Elastic File System
|
||||
|
||||
I want to use Amazon Elastic File System
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeFileSystems" API
|
||||
Then the value at "FileSystems" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DeleteFileSystem" API with:
|
||||
| FileSystemId | fake-id |
|
||||
Then the error code should be "BadRequest"
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/elasticache/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/elasticache/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package elasticache provides gucumber integration tests support.
|
||||
package elasticache
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/elasticache"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@elasticache", func() {
|
||||
gucumber.World["client"] = elasticache.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@elasticache @client
|
||||
Feature: ElastiCache
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeEvents" API
|
||||
Then the value at "Events" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeCacheClusters" API with:
|
||||
| CacheClusterId | fake_cluster |
|
||||
Then I expect the response error code to be "InvalidParameterValue"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
The parameter CacheClusterIdentifier is not a valid identifier.
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/elasticbeanstalk/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/elasticbeanstalk/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package elasticbeanstalk provides gucumber integration tests support.
|
||||
package elasticbeanstalk
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/elasticbeanstalk"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@elasticbeanstalk", func() {
|
||||
gucumber.World["client"] = elasticbeanstalk.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@elasticbeanstalk @client
|
||||
Feature: AWS Elastic Beanstalk
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListAvailableSolutionStacks" API
|
||||
Then the value at "SolutionStacks" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeEnvironmentResources" API with:
|
||||
| EnvironmentId | fake_environment |
|
||||
Then I expect the response error code to be "InvalidParameterValue"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
No Environment found for EnvironmentId = 'fake_environment'.
|
||||
"""
|
||||
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package elasticloadbalancing provides gucumber integration tests support.
|
||||
package elasticloadbalancing
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/elb"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@elasticloadbalancing", func() {
|
||||
gucumber.World["client"] = elb.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
# language: en
|
||||
@elasticloadbalancing @client
|
||||
Feature: Elastic Load Balancing
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeLoadBalancers" API
|
||||
Then the value at "LoadBalancerDescriptions" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeLoadBalancers" API with JSON:
|
||||
"""
|
||||
{"LoadBalancerNames": ["fake_load_balancer"]}
|
||||
"""
|
||||
Then I expect the response error code to be "ValidationError"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
LoadBalancer name cannot contain characters that are not letters, or digits or the dash.
|
||||
"""
|
||||
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package elastictranscoder provides gucumber integration tests support.
|
||||
package elastictranscoder
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/elastictranscoder"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@elastictranscoder", func() {
|
||||
gucumber.World["client"] = elastictranscoder.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@elastictranscoder @client
|
||||
Feature: Amazon Elastic Transcoder
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListPresets" API
|
||||
Then the value at "Presets" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "ReadJob" API with:
|
||||
| Id | fake_job |
|
||||
Then I expect the response error code to be "ValidationException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Value 'fake_job' at 'id' failed to satisfy constraint
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/emr/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/emr/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package emr provides gucumber integration tests support.
|
||||
package emr
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/emr"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@emr", func() {
|
||||
gucumber.World["client"] = emr.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/emr/emr.feature
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/emr/emr.feature
generated
vendored
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@emr @client @elasticmapreduce
|
||||
Feature: Amazon EMR
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListClusters" API
|
||||
Then the value at "Clusters" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeCluster" API with:
|
||||
| ClusterId | fake_cluster |
|
||||
Then I expect the response error code to be "InvalidRequestException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Cluster id 'fake_cluster' is not valid.
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/es/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/es/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package es provides gucumber integration tests support.
|
||||
package es
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/elasticsearchservice"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@es", func() {
|
||||
gucumber.World["client"] = elasticsearchservice.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/es/es.feature
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/es/es.feature
generated
vendored
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@es @elasticsearchservice
|
||||
Feature: Amazon ElasticsearchService
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListDomainNames" API
|
||||
Then the value at "DomainNames" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeElasticsearchDomain" API with:
|
||||
| DomainName | not-a-domain |
|
||||
Then the error code should be "ResourceNotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Domain not found: not-a-domain
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/glacier/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/glacier/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package glacier provides gucumber integration tests support.
|
||||
package glacier
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/glacier"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@glacier", func() {
|
||||
gucumber.World["client"] = glacier.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/glacier/glacier.feature
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/glacier/glacier.feature
generated
vendored
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@glacier @client
|
||||
Feature: Amazon Glacier
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListVaults" API
|
||||
Then the response should contain a "VaultList"
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "ListVaults" API with:
|
||||
| accountId | abcmnoxyz |
|
||||
Then I expect the response error code to be "UnrecognizedClientException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
No account found for the given parameters
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/iam/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/iam/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package iam provides gucumber integration tests support.
|
||||
package iam
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/iam"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@iam", func() {
|
||||
gucumber.World["client"] = iam.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/iam/iam.feature
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/iam/iam.feature
generated
vendored
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@iam @client
|
||||
Feature: AWS Identity and Access Management
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListUsers" API
|
||||
Then the value at "Users" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetUser" API with:
|
||||
| UserName | fake_user |
|
||||
Then I expect the response error code to be "NoSuchEntity"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
The user with name fake_user cannot be found.
|
||||
"""
|
||||
29
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/iotdataplane/client.go
generated
vendored
29
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/iotdataplane/client.go
generated
vendored
@@ -1,29 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package iotdataplane provides gucumber integration tests support.
|
||||
package iotdataplane
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/iot"
|
||||
"github.com/aws/aws-sdk-go/service/iotdataplane"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@iotdataplane", func() {
|
||||
svc := iot.New(smoke.Session)
|
||||
result, err := svc.DescribeEndpoint(&iot.DescribeEndpointInput{})
|
||||
if err != nil {
|
||||
gucumber.World["error"] = err
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("IOT Data endpoint:", *result.EndpointAddress)
|
||||
gucumber.World["client"] = iotdataplane.New(smoke.Session, aws.NewConfig().
|
||||
WithEndpoint(*result.EndpointAddress))
|
||||
})
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
# language: en
|
||||
@iotdataplane @client
|
||||
|
||||
Feature: AWS IoT Data Plane
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetThingShadow" API with:
|
||||
| thingName | fake-thing |
|
||||
Then I expect the response error code to be "ResourceNotFoundException"
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/kinesis/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/kinesis/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package kinesis provides gucumber integration tests support.
|
||||
package kinesis
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/kinesis"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@kinesis", func() {
|
||||
gucumber.World["client"] = kinesis.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/kinesis/kinesis.feature
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/kinesis/kinesis.feature
generated
vendored
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@kinesis @client
|
||||
Feature: AWS Kinesis
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListStreams" API
|
||||
Then the value at "StreamNames" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "DescribeStream" API with:
|
||||
| StreamName | bogus-stream-name |
|
||||
Then I expect the response error code to be "ResourceNotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Stream bogus-stream-name under account
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/kms/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/kms/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package kms provides gucumber integration tests support.
|
||||
package kms
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/kms"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@kms", func() {
|
||||
gucumber.World["client"] = kms.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
13
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/kms/kms.feature
generated
vendored
13
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/kms/kms.feature
generated
vendored
@@ -1,13 +0,0 @@
|
||||
# language: en
|
||||
@kms @client
|
||||
Feature: Amazon Key Management Service
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListAliases" API
|
||||
Then the value at "Aliases" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "GetKeyPolicy" API with:
|
||||
| KeyId | fake-key |
|
||||
| PolicyName | fakepolicy |
|
||||
Then I expect the response error code to be "NotFoundException"
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/lambda/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/lambda/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package lambda provides gucumber integration tests support.
|
||||
package lambda
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/lambda"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@lambda", func() {
|
||||
gucumber.World["client"] = lambda.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/lambda/lambda.feature
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/lambda/lambda.feature
generated
vendored
@@ -1,16 +0,0 @@
|
||||
# language: en
|
||||
@lambda @client
|
||||
Feature: Amazon Lambda
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListFunctions" API
|
||||
Then the value at "Functions" should be a list
|
||||
|
||||
Scenario: Handling errors
|
||||
When I attempt to call the "Invoke" API with:
|
||||
| FunctionName | bogus-function |
|
||||
Then I expect the response error code to be "ResourceNotFoundException"
|
||||
And I expect the response error message to include:
|
||||
"""
|
||||
Function not found
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/machinelearning/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/machinelearning/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package machinelearning provides gucumber integration tests support.
|
||||
package machinelearning
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/machinelearning"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@machinelearning", func() {
|
||||
gucumber.World["client"] = machinelearning.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
# language: en
|
||||
@machinelearning @client
|
||||
Feature: Amazon Machine Learning
|
||||
|
||||
I want to use Amazon Machine Learning
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "DescribeMLModels" API
|
||||
Then the value at "Results" should be a list
|
||||
|
||||
Scenario: Error handling
|
||||
When I attempt to call the "GetBatchPrediction" API with:
|
||||
| BatchPredictionId | fake-id |
|
||||
Then the error code should be "ResourceNotFoundException"
|
||||
And the error message should contain:
|
||||
"""
|
||||
No BatchPrediction with id fake-id exists
|
||||
"""
|
||||
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/mediastore/client.go
generated
vendored
16
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/mediastore/client.go
generated
vendored
@@ -1,16 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package mediastore provides gucumber integration tests support.
|
||||
package mediastore
|
||||
|
||||
import (
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/mediastore"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gucumber.Before("@mediastore", func() {
|
||||
gucumber.World["client"] = mediastore.New(smoke.Session)
|
||||
})
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
# language: en
|
||||
@mediastore @client
|
||||
Feature: AWS Elemental MediaStore
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListContainers" API
|
||||
Then the request should be successful
|
||||
34
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/mediastoredata/client.go
generated
vendored
34
vendor/github.com/aws/aws-sdk-go/awstesting/integration/smoke/mediastoredata/client.go
generated
vendored
@@ -1,34 +0,0 @@
|
||||
// +build integration
|
||||
|
||||
//Package mediastoredata provides gucumber integration tests support.
|
||||
package mediastoredata
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/awstesting/integration/smoke"
|
||||
"github.com/aws/aws-sdk-go/service/mediastore"
|
||||
"github.com/aws/aws-sdk-go/service/mediastoredata"
|
||||
"github.com/gucumber/gucumber"
|
||||
)
|
||||
|
||||
func init() {
|
||||
const containerName = "awsgosdkteamintegcontainer"
|
||||
|
||||
gucumber.Before("@mediastoredata", func() {
|
||||
mediastoreSvc := mediastore.New(smoke.Session)
|
||||
|
||||
resp, err := mediastoreSvc.DescribeContainer(&mediastore.DescribeContainerInput{
|
||||
ContainerName: aws.String(containerName),
|
||||
})
|
||||
if err != nil {
|
||||
gucumber.World["error"] = fmt.Errorf("failed to get mediastore container endpoint for test, %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
gucumber.World["client"] = mediastoredata.New(smoke.Session, &aws.Config{
|
||||
Endpoint: resp.Container.Endpoint,
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
# language: en
|
||||
@mediastoredata @client
|
||||
Feature: AWS Elemental MediaStore Data Plane
|
||||
|
||||
Scenario: Making a request
|
||||
When I call the "ListItems" API
|
||||
Then the request should be successful
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user