Skip to content

Commit 233e3be

Browse files
author
Divjot Arora
authored
Ping deployment with a short context during test setup. (#238)
- Print out helpful statement if deployment is not running during test setup. - Remove log lines from test setup/teardown functions.
1 parent 2383f21 commit 233e3be

File tree

1 file changed

+19
-23
lines changed

1 file changed

+19
-23
lines changed

mongo/integration/mtest/setup.go

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
package mtest
88

99
import (
10+
"context"
1011
"errors"
11-
"log"
12+
"fmt"
1213
"math"
1314
"os"
1415
"strconv"
1516
"strings"
17+
"time"
1618

1719
"go.mongodb.org/mongo-driver/bson"
1820
"go.mongodb.org/mongo-driver/mongo"
@@ -53,34 +55,32 @@ func Setup() error {
5355
var err error
5456
testContext.connString, err = getConnString()
5557
if err != nil {
56-
log.Printf("connstring error: %v", err)
57-
return err
58+
return fmt.Errorf("error getting connection string: %v", err)
5859
}
5960
testContext.topo, err = topology.New(topology.WithConnString(func(connstring.ConnString) connstring.ConnString {
6061
return testContext.connString
6162
}))
6263
if err != nil {
63-
log.Printf("topology.New error: %v", err)
64-
return err
64+
return fmt.Errorf("error creating topology: %v", err)
6565
}
6666
if err = testContext.topo.Connect(); err != nil {
67-
log.Printf("topology.Connect error: %v", err)
68-
return err
67+
return fmt.Errorf("error connecting topology: %v", err)
6968
}
7069

7170
testContext.client, err = setupClient(testContext.connString, options.Client())
7271
if err != nil {
73-
log.Printf("error setting up client: %v", err)
74-
return err
72+
return fmt.Errorf("error connecting test client: %v", err)
7573
}
76-
if err := testContext.client.Ping(Background, readpref.Primary()); err != nil {
77-
log.Printf("error connecting to client: %v", err)
78-
return err
74+
75+
pingCtx, cancel := context.WithTimeout(Background, 2*time.Second)
76+
defer cancel()
77+
if err := testContext.client.Ping(pingCtx, readpref.Primary()); err != nil {
78+
return fmt.Errorf("ping error: %v; make sure the deployment is running on URI %v", err,
79+
testContext.connString.Original)
7980
}
8081

8182
if testContext.serverVersion, err = getServerVersion(); err != nil {
82-
log.Printf("error getting server version: %v", err)
83-
return err
83+
return fmt.Errorf("error getting server version: %v", err)
8484
}
8585

8686
switch testContext.topo.Kind() {
@@ -98,15 +98,14 @@ func Setup() error {
9898
{"transactionLifetimeLimitSeconds", 3},
9999
}).Err()
100100
if err != nil {
101-
return err
101+
return fmt.Errorf("error setting transactionLifetimeLimitSeconds: %v", err)
102102
}
103103
}
104104

105105
testContext.authEnabled = len(os.Getenv("MONGO_GO_DRIVER_CA_FILE")) != 0
106106
biRes, err := testContext.client.Database("admin").RunCommand(Background, bson.D{{"buildInfo", 1}}).DecodeBytes()
107107
if err != nil {
108-
log.Printf("error running buildInfo: %v", err)
109-
return err
108+
return fmt.Errorf("buildInfo error: %v", err)
110109
}
111110
modulesRaw, err := biRes.LookupErr("modules")
112111
if err == nil {
@@ -126,16 +125,13 @@ func Setup() error {
126125
// This function must be called once after all tests have finished running.
127126
func Teardown() error {
128127
if err := testContext.client.Database(TestDb).Drop(Background); err != nil {
129-
log.Printf("Database.Drop error: %v", err)
130-
return err
128+
return fmt.Errorf("error dropping test database: %v", err)
131129
}
132130
if err := testContext.client.Disconnect(Background); err != nil {
133-
log.Printf("Client.Disconnect error: %v", err)
134-
return err
131+
return fmt.Errorf("error disconnecting test client: %v", err)
135132
}
136133
if err := testContext.topo.Disconnect(Background); err != nil {
137-
log.Printf("Topology.Disconnect error: %v", err)
138-
return err
134+
return fmt.Errorf("error disconnecting test topology: %v", err)
139135
}
140136
return nil
141137
}

0 commit comments

Comments
 (0)