Skip to content

Commit

Permalink
add parameter tests for datasetRetriever
Browse files Browse the repository at this point in the history
  • Loading branch information
consolethinks committed Jun 18, 2024
1 parent 0ef126f commit 844ed38
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 2 deletions.
20 changes: 18 additions & 2 deletions cmd/datasetRetriever/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ import (
"net/http"
"os"
"os/exec"
"github.com/paulscherrerinstitute/scicat/datasetUtils"
"strings"
"time"

"github.com/paulscherrerinstitute/scicat/datasetUtils"

"github.com/fatih/color"
)

Expand Down Expand Up @@ -69,11 +70,26 @@ func main() {

flag.Parse()

// param test only
if datasetUtils.TestFlags != nil {
datasetUtils.TestFlags(map[string]interface{}{
"retrieve": *retrieveFlag,
"user": *userpass,
"token": *token,
"nochksum": *nochksumFlag,
"dataset": *datasetId,
"ownergroup": *ownerGroup,
"testenv": *testenvFlag,
"devenv": *devenvFlag,
"version": *showVersion})
return
}

if *showVersion {
fmt.Printf("%s\n", VERSION)
return
}

datasetUtils.CheckForNewVersion(client, APP, VERSION)

var env string
Expand Down
86 changes: 86 additions & 0 deletions cmd/datasetRetriever/main_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package main

import (
"flag"
"os"
"testing"

"github.com/paulscherrerinstitute/scicat/datasetUtils"
)

func TestMainFlags(t *testing.T) {
// test cases
tests := []struct {
name string
flags map[string]interface{}
args []string
}{
{
name: "Test without flags",
flags: map[string]interface{}{
"retrieve": false,
"nochksum": false,
"testenv": false,
"devenv": false,
"version": false,
"user": "",
"token": "",
"dataset": "",
"ownergroup": "",
},
args: []string{"test"},
},
{
name: "Set all flags",
flags: map[string]interface{}{
"retrieve": true,
"nochksum": true,
"testenv": true,
"devenv": true,
"version": true,
"user": "usertest:passtest",
"token": "token",
"dataset": "some dataset",
"ownergroup": "some owners",
},
args: []string{
"test",
"--retrieve",
"--nochksum",
"--testenv",
"--devenv",
"--user",
"usertest:passtest",
"--token",
"token",
"--dataset",
"some dataset",
"--ownergroup",
"some owners",
"--version",
},
},
}

// running test cases
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
flag.CommandLine = flag.NewFlagSet(test.name, flag.ExitOnError)
datasetUtils.TestFlags = func(flags map[string]interface{}) {
passing := true
for flag := range test.flags {
if flags[flag] != test.flags[flag] {
t.Logf("%s's value should be \"%v\" but it's \"%v\", or non-matching type", flag, test.flags[flag], flags[flag])
passing = false
}
}
if !passing {
t.Fail()
}
}

os.Args = test.args
main()
})
}
}

0 comments on commit 844ed38

Please sign in to comment.