forked from openshift/assisted-service
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsubsystem_suite_test.go
More file actions
97 lines (86 loc) · 2.86 KB
/
Copy pathsubsystem_suite_test.go
File metadata and controls
97 lines (86 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package subsystem
import (
"fmt"
"net/url"
"testing"
"github.com/go-openapi/runtime"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/postgres"
"github.com/kelseyhightower/envconfig"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"github.com/openshift/assisted-service/client"
"github.com/openshift/assisted-service/pkg/auth"
"github.com/sirupsen/logrus"
)
var db *gorm.DB
var agentBMClient, badAgentBMClient, userBMClient, adminUserBMClient, unallowedUserBMClient *client.AssistedInstall
var log *logrus.Logger
var wiremock *WireMock
var Options struct {
DBHost string `envconfig:"DB_HOST"`
DBPort string `envconfig:"DB_PORT"`
EnableAuth bool `envconfig:"ENABLE_AUTH"`
InventoryHost string `envconfig:"INVENTORY"`
TestToken string `envconfig:"TEST_TOKEN"`
TestTokenAdmin string `envconfig:"TEST_TOKEN_ADMIN"`
TestTokenUnallowed string `envconfig:"TEST_TOKEN_UNALLOWED"`
OCMHost string `envconfig:"OCM_HOST"`
}
func clientcfg(authInfo runtime.ClientAuthInfoWriter) client.Config {
cfg := client.Config{
URL: &url.URL{
Scheme: client.DefaultSchemes[0],
Host: Options.InventoryHost,
Path: client.DefaultBasePath,
},
}
if Options.EnableAuth {
log.Info("API Key authentication enabled for subsystem tests")
cfg.AuthInfo = authInfo
}
return cfg
}
func init() {
var err error
log = logrus.New()
log.SetReportCaller(true)
err = envconfig.Process("subsystem", &Options)
if err != nil {
log.Fatal(err.Error())
}
userClientCfg := clientcfg(auth.UserAuthHeaderWriter("bearer " + Options.TestToken))
adminUserClientCfg := clientcfg(auth.UserAuthHeaderWriter("bearer " + Options.TestTokenAdmin))
unallowedUserClientCfg := clientcfg(auth.UserAuthHeaderWriter("bearer " + Options.TestTokenUnallowed))
agentClientCfg := clientcfg(auth.AgentAuthHeaderWriter(FakePS))
badAgentClientCfg := clientcfg(auth.AgentAuthHeaderWriter(WrongPullSecret))
userBMClient = client.New(userClientCfg)
adminUserBMClient = client.New(adminUserClientCfg)
unallowedUserBMClient = client.New(unallowedUserClientCfg)
agentBMClient = client.New(agentClientCfg)
badAgentBMClient = client.New(badAgentClientCfg)
db, err = gorm.Open("postgres",
fmt.Sprintf("host=%s port=%s user=admin dbname=installer password=admin sslmode=disable",
Options.DBHost, Options.DBPort))
if err != nil {
logrus.Fatal("Fail to connect to DB, ", err)
}
if !Options.EnableAuth {
wiremock = &WireMock{
OCMHost: Options.OCMHost,
TestToken: Options.TestToken,
}
err = wiremock.DeleteAllWiremockStubs()
if err != nil {
logrus.Fatal("Fail to delete all wiremock stubs, ", err)
}
if err = wiremock.CreateWiremockStubsForOCM(); err != nil {
logrus.Fatal("Failed to init wiremock stubs, ", err)
}
}
}
func TestSubsystem(t *testing.T) {
RegisterFailHandler(Fail)
clearDB()
RunSpecs(t, "Subsystem Suite")
}