bats: Factor setup and teardown logic out of tests, greatly reducing duplication

This commit is contained in:
Matt Jesuele
2019-10-08 13:26:43 -07:00
parent a78710c408
commit fa3c06b5cb
22 changed files with 101 additions and 173 deletions

View File

@@ -1,20 +1,13 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
# Append the directory name with the pid of the calling process so
# multiple tests can be run in parallel on the same machine
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt table create -s=`batshelper 1pk5col-ints.schema` test
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
# Create a single primary key table and do stuff

View File

@@ -1,20 +1,15 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt table create -s=`batshelper 1pk5col-strings.schema` test
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "export a table with a string with commas to csv" {
run dolt table put-row test pk:tim c1:is c2:super c3:duper c4:rad c5:"a,b,c,d,e"
[ "$status" -eq 0 ]

View File

@@ -1,18 +1,13 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt table create -s=`batshelper 1pksupportedtypes.schema` test
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "dolt table put-row with all types then examine table" {

View File

@@ -1,18 +1,13 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt table create -s=`batshelper 2pk5col-ints.schema` test
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "create a table with a schema file and examine repo" {

View File

@@ -1,13 +1,8 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt table create -s=`batshelper 1pk5col-ints.schema` one_pk
dolt table create -s=`batshelper 2pk5col-ints.schema` two_pk
dolt sql -q "insert into one_pk (pk,c1,c2,c3,c4,c5) values (0,0,0,0,0,0),(1,10,10,10,10,10),(2,20,20,20,20,20),(3,30,30,30,30,30)"
@@ -15,7 +10,7 @@ setup() {
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "sql select from multiple tables" {

View File

@@ -1,18 +1,13 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt table import -c -s `batshelper capital-letter-column-names.schema` test `batshelper capital-letter-column-names.csv`
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "capital letter col names. put a row in a table using dolt table put-row" {

View File

@@ -1,19 +1,17 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
SKIP_DOLT_INIT=true
setup_common $SKIP_DOLT_INIT
mkdir $BATS_TMPDIR/config-test$$
nativevar DOLT_ROOT_PATH $BATS_TMPDIR/config-test$$ /p
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
cd $BATS_TMPDIR/dolt-repo-$$
}
teardown() {
teardown_common
rm -rf "$BATS_TMPDIR/config-test$$"
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
}
@test "make sure no dolt configuration for simulated fresh user" {

View File

@@ -1,17 +1,12 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "two branches modify different cell different row. merge. no conflict" {

View File

@@ -1,17 +1,12 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "create a single primary key table" {

View File

@@ -1,17 +1,12 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "diff summary comparing working table to last commit" {

View File

@@ -1,15 +1,12 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
# Tests on an empty dolt repository

View File

@@ -1,25 +1,23 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
REMOTE=http://localhost:50051/test-org/test-repo
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:$GOPATH/bin
export NOMS_VERSION_NEXT=1
setup_common
cd $BATS_TMPDIR
mkdir remotes-$$
echo remotesrv log available here $BATS_TMPDIR/remotes-$$/remotesrv.log
remotesrv --http-port 1234 --dir ./remotes-$$ &> ./remotes-$$/remotesrv.log 3>&- &
mkdir dolt-repo-$$
cd dolt-repo-$$
dolt init
dolt remote add test-remote $REMOTE
dolt push test-remote master
export DOLT_HEAD_COMMIT=`get_head_commit`
}
teardown() {
rm -rf $BATS_TMPDIR/{git,dolt}-repo-$$
teardown_common
rm -rf $BATS_TMPDIR/git-repo-$$
pgrep remotesrv | xargs kill
rm -rf $BATS_TMPDIR/remotes-$$
}

View File

@@ -5,10 +5,33 @@ if [ -z "$BATS_TMPDIR" ]; then
mkdir $BATS_TMPDIR
fi
nativevar DOLT_ROOT_PATH $BATS_TMPDIR/config-$$ /p
dolt config --global --add user.name "Bats Tests"
dolt config --global --add user.email "bats@email.fake"
dolt config --global --add metrics.disabled true
nativebatsdir() { echo `nativepath $BATS_TEST_DIRNAME/$1`; }
batshelper() { echo `nativebatsdir helper/$1`; }
set_dolt_user() {
dolt config --global --add user.name "$1" > /dev/null 2>&1
dolt config --global --add user.email "$2" > /dev/null 2>&1
}
setup_common() {
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
# Append the directory name with the pid of the calling process so
# multiple tests can be run in parallel on the same machine
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
SKIP_INIT=$1
if [ "$SKIP_INIT" != true ] ; then
dolt init
fi
}
teardown_common() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
}
nativevar DOLT_ROOT_PATH $BATS_TMPDIR/config-$$ /p
dolt config --global --add metrics.disabled true > /dev/null 2>&1
set_dolt_user "Bats Tests" "bats@email.fake"

View File

@@ -1,19 +1,14 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt table create -s=`batshelper 1pk5col-ints.schema` test1
dolt table create -s=`batshelper 1pk5col-ints.schema` test2
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "examine a multi table repo" {

View File

@@ -1,16 +1,14 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
setup_common
mkdir no-dolt-dir-$$
cd no-dolt-dir-$$
}
teardown() {
rm -rf $BATS_TMPDIR/no-dolt-dir-$$
teardown_common
}
@test "checking we have a dolt executable available" {
@@ -226,9 +224,8 @@ NOT_VALID_REPO_ERROR="The current directory is not a valid dolt repository."
}
@test "initializing a dolt repository" {
cd $BATS_TMPDIR
mkdir dolt-repo-$$
cd dolt-repo-$$
mkdir dolt-repo-$$-new
cd dolt-repo-$$-new
run dolt init
[ "$status" -eq 0 ]
[ "$output" = "Successfully initialized dolt data repository." ]
@@ -236,5 +233,5 @@ NOT_VALID_REPO_ERROR="The current directory is not a valid dolt repository."
[ -d .dolt/noms ]
[ -f .dolt/config.json ]
[ -f .dolt/repo_state.json ]
rm -rf $BATS_TMPDIR/dolt-repo-$$
}
rm -rf $BATS_TMPDIR/dolt-repo-$$-new
}

View File

@@ -1,22 +1,19 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
setup_common
cd $BATS_TMPDIR
mkdir remotes-$$
mkdir remotes-$$/test-org-empty
echo remotesrv log available here $BATS_TMPDIR/remotes-$$/remotesrv.log
remotesrv --http-port 1234 --dir ./remotes-$$ &> ./remotes-$$/remotesrv.log 3>&- &
mkdir dolt-repo-$$
cd dolt-repo-$$
dolt init
mkdir "dolt-repo-clones"
}
teardown() {
rm -rf $BATS_TMPDIR/dolt-repo-$$
teardown_common
pgrep remotesrv | xargs kill
rm -rf $BATS_TMPDIR/remotes-$$
}

View File

@@ -1,17 +1,12 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "replace table using csv" {

View File

@@ -1,17 +1,12 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "changing column types should not produce a data diff error" {

View File

@@ -1,18 +1,13 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt config --global --unset metrics.disabled
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
rm -rf "$BATS_TMPDIR/config-$$/.dolt/eventsData/"
}

View File

@@ -1,18 +1,13 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt table import -c -pk=Timestamp test `batshelper sql-reserved-column-name.csv`
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "run sql select on a table with a column name that is an sql reserved word" {

View File

@@ -1,18 +1,13 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
dolt table create -s=`batshelper 1pk5col-ints.schema` test
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "run a query in sql shell" {

View File

@@ -1,17 +1,12 @@
#!/usr/bin/env bats
load $BATS_TEST_DIRNAME/helper/common.bash
setup() {
load $BATS_TEST_DIRNAME/helper/common.bash
export PATH=$PATH:~/go/bin
export NOMS_VERSION_NEXT=1
cd $BATS_TMPDIR
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
dolt init
setup_common
}
teardown() {
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
teardown_common
}
@test "update table using csv" {