Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Commit e19bb8f

Browse files
committed
test: always use our testing certificates
1 parent f0a09af commit e19bb8f

File tree

3 files changed

+36
-14
lines changed

3 files changed

+36
-14
lines changed

cmd/commit.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ func commit(args []string) error {
102102
if _, err = os.Stat(filepath.Join(".dio", db, "db")); os.IsNotExist(err) {
103103
// At the moment, since there's no better way to check for the existence of a remote database, we just
104104
// grab the list of the users databases and check against that
105-
dbList, err := getDatabases(cloud, certUser)
106-
if err != nil {
107-
return err
105+
dbList, errInner := getDatabases(cloud, certUser)
106+
if errInner != nil {
107+
return errInner
108108
}
109109
for _, j := range dbList {
110110
if db == j.Name {

cmd/dio_test.go

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"bytes"
66
"crypto/sha256"
77
"crypto/tls"
8+
"crypto/x509"
89
"encoding/hex"
910
"encoding/json"
1011
"flag"
@@ -90,11 +91,11 @@ func (s *DioSuite) SetUpSuite(c *chk.C) {
9091
s.config = filepath.Join(tempDir, "config.toml")
9192
f, err := os.Create(s.config)
9293
if err != nil {
93-
log.Fatalln(err.Error())
94+
log.Fatalln(err)
9495
}
9596
d, err := os.Getwd()
9697
if err != nil {
97-
log.Fatalln(err.Error())
98+
log.Fatalln(err)
9899
}
99100
origDir = d
100101
mockAddr := "https://localhost:5551"
@@ -106,45 +107,66 @@ func (s *DioSuite) SetUpSuite(c *chk.C) {
106107
filepath.Join(d, "..", "test_data", "default.cert.pem"),
107108
mockAddr)
108109
if err != nil {
109-
log.Fatalln(err.Error())
110+
log.Fatalln(err)
110111
}
111112

112113
// Drop any old config loaded automatically by viper, and use our temporary test config instead
113114
viper.Reset()
114115
viper.SetConfigFile(s.config)
115116
if err = viper.ReadInConfig(); err != nil {
116-
log.Fatalf("Error loading test config file: %s", err.Error())
117+
log.Fatalf("Error loading test config file: %s", err)
117118
return
118119
}
119120
cloud = viper.GetString("general.cloud")
120121

122+
// Use our testing certificates
123+
ourCAPool := x509.NewCertPool()
124+
chainFile, err := ioutil.ReadFile(filepath.Join(d, "..", "test_data", "ca-chain-docker.cert.pem"))
125+
if err != nil {
126+
log.Fatalln(err)
127+
}
128+
ok := ourCAPool.AppendCertsFromPEM(chainFile)
129+
if !ok {
130+
log.Fatalln("Error when loading certificate chain file")
131+
}
132+
testCert := filepath.Join(d, "..", "test_data", "default.cert.pem")
133+
cert, err := tls.LoadX509KeyPair(testCert, testCert)
134+
if err != nil {
135+
log.Fatalln(err)
136+
}
137+
TLSConfig.Certificates = []tls.Certificate{cert}
138+
certUser, _, err = getUserAndServer()
139+
if err != nil {
140+
log.Fatalln(err)
141+
}
142+
121143
// Add test database
122144
s.dbName = "19kB.sqlite"
123145
db, err := ioutil.ReadFile(filepath.Join(d, "..", "test_data", s.dbName))
124146
if err != nil {
125-
log.Fatalln(err.Error())
147+
log.Fatalln(err)
126148
}
127149
s.dbFile = filepath.Join(tempDir, s.dbName)
128150
err = ioutil.WriteFile(s.dbFile, db, 0644)
129151
if err != nil {
130-
log.Fatalln(err.Error())
152+
log.Fatalln(err)
131153
}
132154

133155
// Set the last modified date of the database file to a known value
134156
err = os.Chtimes(s.dbFile, time.Now(), time.Date(2019, time.March, 15, 18, 1, 0, 0, time.UTC))
135157
if err != nil {
136-
log.Fatalln(err.Error())
158+
log.Fatalln(err)
137159
}
138160

139161
// Add a test licence
140162
lic, err := ioutil.ReadFile(filepath.Join(d, "..", "LICENSE"))
141163
if err != nil {
142-
log.Fatalln(err.Error())
164+
log.Fatalln(err)
143165
}
144166
licFile = filepath.Join(tempDir, "test.licence")
145167
err = ioutil.WriteFile(licFile, lic, 0644)
146168
if err != nil {
147-
log.Fatalln(err.Error())
169+
log.Fatalln(err)
148170
}
149171

150172
// If not told otherwise, redirect command output to /dev/null

cmd/shared.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ func dbChanged(db string, meta metaData) (changed bool, err error) {
148148

149149
// Retrieves the list of databases available to the user
150150
var getDatabases = func(url string, user string) (dbList []dbListEntry, err error) {
151-
resp, body, errs := rq.New().TLSClientConfig(&TLSConfig).Get(fmt.Sprintf("%s/%s", url, user)).End()
151+
resp, body, errs := rq.New().TLSClientConfig(&TLSConfig).Get(fmt.Sprintf("%s/%s", url, user)).EndBytes()
152152
if errs != nil {
153153
e := fmt.Sprintln("Errors when retrieving the database list:")
154154
for _, err := range errs {
@@ -158,7 +158,7 @@ var getDatabases = func(url string, user string) (dbList []dbListEntry, err erro
158158
return
159159
}
160160
defer resp.Body.Close()
161-
err = json.Unmarshal([]byte(body), &dbList)
161+
err = json.Unmarshal(body, &dbList)
162162
if err != nil {
163163
_, errInner := fmt.Fprintf(fOut, "Error retrieving database list: '%v'\n", err.Error())
164164
if errInner != nil {

0 commit comments

Comments
 (0)