Skip to content

Commit

Permalink
TOOLS-1872 Allow mongodump testing to get server from environment
Browse files Browse the repository at this point in the history
This commit optionally uses the MONGOD environment variable to provide
a URI for testing.  This simplifies testing against replica sets of
different versions running on distinct ports.
  • Loading branch information
xdg committed Nov 16, 2017
1 parent 85677e5 commit 9c973cb
Showing 1 changed file with 35 additions and 15 deletions.
50 changes: 35 additions & 15 deletions mongodump/mongodump_test.go
Expand Up @@ -43,22 +43,35 @@ const (
)

func simpleMongoDumpInstance() *MongoDump {
ssl := testutil.GetSSLOptions()
auth := testutil.GetAuthOptions()
namespace := &options.Namespace{
DB: testDB,
}
connection := &options.Connection{
Host: testServer,
Port: testPort,
}
toolOptions := &options.ToolOptions{
SSL: &ssl,
Namespace: namespace,
Connection: connection,
Auth: &auth,
Verbosity: &options.Verbosity{},
var toolOptions *options.ToolOptions

// get ToolOptions from URI or defaults
if uri := os.Getenv("MONGOD"); uri != "" {
fakeArgs := []string{"--uri=" + uri}
toolOptions = options.New("mongodump", "", options.EnabledOptions{URI: true})
toolOptions.URI.AddKnownURIParameters(options.KnownURIOptionsReadPreference)
_, err := toolOptions.ParseArgs(fakeArgs)
if err != nil {
panic("Could not parse MONGOD environment variable")
}
} else {
ssl := testutil.GetSSLOptions()
auth := testutil.GetAuthOptions()
connection := &options.Connection{
Host: testServer,
Port: testPort,
}
toolOptions = &options.ToolOptions{
SSL: &ssl,
Connection: connection,
Auth: &auth,
Verbosity: &options.Verbosity{},
}
}

// Limit ToolOptions to test database
toolOptions.Namespace = &options.Namespace{DB: testDB}

outputOptions := &OutputOptions{
NumParallelCollections: 1,
}
Expand All @@ -74,6 +87,13 @@ func simpleMongoDumpInstance() *MongoDump {
}

func getBareSession() (*mgo.Session, error) {
if uri := os.Getenv("MONGOD"); uri != "" {
session, err := mgo.Dial(uri)
if err != nil {
return nil, err
}
return session, nil
}
ssl := testutil.GetSSLOptions()
auth := testutil.GetAuthOptions()
sessionProvider, err := db.NewSessionProvider(options.ToolOptions{
Expand Down

0 comments on commit 9c973cb

Please sign in to comment.