diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2018-01-30 16:45:54 +0100 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2018-01-30 16:45:54 +0100 |
| commit | a2700ca5e57c6466e48c644da6a0c1c93e5ab70c (patch) | |
| tree | cd8fe830a64ae13012fdd4220edc7bf82760deca /shared_test.go | |
| parent | cad4a10319b98dd15c0a74d0fea13a2da4a0d3cc (diff) | |
| download | go-schwift-a2700ca5e57c6466e48c644da6a0c1c93e5ab70c.tar.gz | |
finalize Account.Post() design, add initial account tests
Failing right now because compileHeaders() is a stub.
Diffstat (limited to 'shared_test.go')
| -rw-r--r-- | shared_test.go | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/shared_test.go b/shared_test.go new file mode 100644 index 0000000..bc67320 --- /dev/null +++ b/shared_test.go @@ -0,0 +1,74 @@ +/****************************************************************************** +* +* Copyright 2018 Stefan Majewsky <majewsky@gmx.net> +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +******************************************************************************/ + +package schwift + +import ( + "os" + "testing" + + "github.com/gophercloud/gophercloud" + "github.com/gophercloud/gophercloud/openstack" + "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/swauth" +) + +func testWithAccount(t *testing.T, testCode func(a *Account)) { + stAuth := os.Getenv("ST_AUTH") + stUser := os.Getenv("ST_USER") + stKey := os.Getenv("ST_KEY") + var client *gophercloud.ServiceClient + + if stAuth == "" && stUser == "" && stKey == "" { + //option 1: Keystone authentication + authOptions, err := openstack.AuthOptionsFromEnv() + if err != nil { + t.Error("missing Swift credentials (need either ST_AUTH, ST_USER, ST_KEY or OS_* variables)") + t.Error("openstack.AuthOptionsFromEnv returned: " + err.Error()) + return + } + provider, err := openstack.AuthenticatedClient(authOptions) + if err != nil { + t.Errorf("openstack.AuthenticatedClient returned: " + err.Error()) + return + } + client, err = openstack.NewObjectStorageV1(provider, gophercloud.EndpointOpts{}) + if err != nil { + t.Errorf("openstack.NewObjectStorageV1 returned: " + err.Error()) + return + } + } else { + //option 2: Swift authentication v1 + provider, err := openstack.NewClient(stAuth) + if err != nil { + t.Errorf("openstack.NewClient returned: " + err.Error()) + return + } + client, err = swauth.NewObjectStorageV1(provider, swauth.AuthOpts{User: stUser, Key: stKey}) + if err != nil { + t.Errorf("swauth.NewObjectStorageV1 returned: " + err.Error()) + return + } + } + + account, err := AccountFromClient(client) + if err != nil { + t.Errorf("schwift.AccountFromClient returned: " + err.Error()) + return + } + testCode(account) +} |
