Update circle ci for MySQL tests.
This commit is contained in:
parent
fbf5fbddbc
commit
4c5584aaae
8 changed files with 77 additions and 53 deletions
|
|
@ -14,6 +14,14 @@ jobs:
|
|||
POSTGRES_PASSWORD: jet
|
||||
POSTGRES_DB: jetdb
|
||||
|
||||
- image: circleci/php:7.1-apache-node-browsers # The primary container where steps are run
|
||||
- image: circleci/mysql:8.0.4
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: rootpw
|
||||
MYSQL_DATABASE: test_db
|
||||
MYSQL_USER: user
|
||||
MYSQL_PASSWORD: passw0rd
|
||||
|
||||
working_directory: /go/src/github.com/go-jet/jet
|
||||
|
||||
environment: # environment variables for the build itself
|
||||
|
|
@ -28,6 +36,7 @@ jobs:
|
|||
command: |
|
||||
go get github.com/google/uuid
|
||||
go get github.com/lib/pq
|
||||
go get github.com/go-sql-driver/mysql
|
||||
|
||||
go get github.com/pkg/profile
|
||||
go get gotest.tools/assert
|
||||
|
|
@ -48,14 +57,29 @@ jobs:
|
|||
echo Failed waiting for Postgres && exit 1
|
||||
|
||||
- run:
|
||||
name: Init Postgres database
|
||||
name: Waiting for MySQL to be ready
|
||||
command: |
|
||||
for i in `seq 1 10`;
|
||||
do
|
||||
nc -z 127.0.0.1 3306 && echo Success && exit 0
|
||||
echo -n .
|
||||
sleep 1
|
||||
done
|
||||
echo Failed waiting for MySQL && exit 1
|
||||
- run:
|
||||
name: Install MySQL CLI;
|
||||
command: |
|
||||
sudo apt-get install default-mysql-client
|
||||
|
||||
- run:
|
||||
name: Init Postgres and MySQL database
|
||||
command: |
|
||||
cd tests
|
||||
go run ./init/init.go
|
||||
cd ..
|
||||
|
||||
- run: mkdir -p $TEST_RESULTS
|
||||
- run: go test -v . ./tests -coverpkg=github.com/go-jet/jet,github.com/go-jet/jet/execution/...,github.com/go-jet/jet/generator/...,github.com/go-jet/jet/internal/... -coverprofile=cover.out 2>&1 | go-junit-report > $TEST_RESULTS/results.xml
|
||||
- run: go test -v ./... -coverpkg=github.com/go-jet/jet/postgres/...,github.com/go-jet/mysql/...,github.com/go-jet/jet/execution/...,github.com/go-jet/jet/generator/...,github.com/go-jet/jet/internal/... -coverprofile=cover.out 2>&1 | go-junit-report > $TEST_RESULTS/results.xml
|
||||
|
||||
- run:
|
||||
name: Upload code coverage
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ func (c ColumnInfo) GoBaseType() string {
|
|||
case "uuid":
|
||||
return "uuid.UUID"
|
||||
default:
|
||||
fmt.Println("Unsupported sql type: " + c.DataType + ", " + c.EnumName + ", using string instead for model type.")
|
||||
fmt.Println("Unsupported sql type: " + c.DataType + ", using string instead for model type.")
|
||||
return "string"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package jet
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"gotest.tools/assert"
|
||||
"testing"
|
||||
)
|
||||
|
|
@ -106,9 +105,6 @@ func assertStatement(t *testing.T, query Statement, expectedQuery string, expect
|
|||
queryStr, args, err := query.Sql()
|
||||
assert.NilError(t, err)
|
||||
|
||||
fmt.Println(queryStr)
|
||||
|
||||
//fmt.Println(queryStr)
|
||||
assert.Equal(t, queryStr, expectedQuery)
|
||||
assert.DeepEqual(t, args, expectedArgs)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,27 +8,14 @@ import (
|
|||
"github.com/go-jet/jet/internal/jet"
|
||||
"gotest.tools/assert"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func JsonPrint(v interface{}) {
|
||||
jsonText, _ := json.MarshalIndent(v, "", "\t")
|
||||
fmt.Println(string(jsonText))
|
||||
}
|
||||
|
||||
func JsonSave(v interface{}, path string) {
|
||||
jsonText, _ := json.MarshalIndent(v, "", "\t")
|
||||
|
||||
err := ioutil.WriteFile(path, jsonText, 0644)
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func AssertExec(t *testing.T, stmt jet.Statement, db execution.DB, rowsAffected ...int64) {
|
||||
res, err := stmt.Exec(db)
|
||||
|
||||
|
|
@ -47,6 +34,16 @@ func AssertExecErr(t *testing.T, stmt jet.Statement, db execution.DB, errorStr s
|
|||
assert.Error(t, err, errorStr)
|
||||
}
|
||||
|
||||
func getFullPath(relativePath string) string {
|
||||
goPath := os.Getenv("GOPATH")
|
||||
return filepath.Join(goPath, "src/github.com/go-jet/jet/tests", relativePath)
|
||||
}
|
||||
|
||||
func PrintJson(v interface{}) {
|
||||
jsonText, _ := json.MarshalIndent(v, "", "\t")
|
||||
fmt.Println(string(jsonText))
|
||||
}
|
||||
|
||||
func AssertJSON(t *testing.T, data interface{}, expectedJSON string) {
|
||||
jsonData, err := json.MarshalIndent(data, "", "\t")
|
||||
assert.NilError(t, err)
|
||||
|
|
@ -54,8 +51,21 @@ func AssertJSON(t *testing.T, data interface{}, expectedJSON string) {
|
|||
assert.Equal(t, "\n"+string(jsonData)+"\n", expectedJSON)
|
||||
}
|
||||
|
||||
func AssertJSONFile(t *testing.T, data interface{}, jsonFilePath string) {
|
||||
fileJSONData, err := ioutil.ReadFile(jsonFilePath)
|
||||
func SaveJsonFile(v interface{}, testRelativePath string) {
|
||||
jsonText, _ := json.MarshalIndent(v, "", "\t")
|
||||
|
||||
filePath := getFullPath(testRelativePath)
|
||||
err := ioutil.WriteFile(filePath, jsonText, 0644)
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func AssertJSONFile(t *testing.T, data interface{}, testRelativePath string) {
|
||||
|
||||
filePath := getFullPath(testRelativePath)
|
||||
fileJSONData, err := ioutil.ReadFile(filePath)
|
||||
assert.NilError(t, err)
|
||||
|
||||
if runtime.GOOS == "windows" {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package mysql
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/go-jet/jet/internal/testutils"
|
||||
"github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/model"
|
||||
. "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table"
|
||||
|
|
@ -26,7 +25,7 @@ func TestAllTypes(t *testing.T) {
|
|||
|
||||
assert.NilError(t, err)
|
||||
|
||||
//testutils.JsonPrint(dest)
|
||||
//testutils.PrintJson(dest)
|
||||
testutils.AssertJSON(t, dest, allTypesJson)
|
||||
}
|
||||
|
||||
|
|
@ -96,7 +95,7 @@ LIMIT ?;
|
|||
|
||||
assert.NilError(t, err)
|
||||
|
||||
//testutils.JsonPrint(dest)
|
||||
//testutils.PrintJson(dest)
|
||||
|
||||
testutils.AssertJSON(t, dest, `
|
||||
[
|
||||
|
|
@ -421,7 +420,7 @@ LIMIT ?;
|
|||
|
||||
assert.NilError(t, err)
|
||||
|
||||
//testutils.JsonPrint(dest)
|
||||
//testutils.PrintJson(dest)
|
||||
|
||||
testutils.AssertJSONFile(t, dest, "./testdata/common/int_operators.json")
|
||||
}
|
||||
|
|
@ -523,7 +522,7 @@ func TestTimeExpressions(t *testing.T) {
|
|||
CURRENT_TIME(3),
|
||||
)
|
||||
|
||||
fmt.Println(query.Sql())
|
||||
//fmt.Println(query.Sql())
|
||||
|
||||
testutils.AssertStatementSql(t, query, `
|
||||
SELECT CAST(? AS TIME),
|
||||
|
|
@ -711,7 +710,7 @@ func TestTimestampExpressions(t *testing.T) {
|
|||
CURRENT_TIMESTAMP(2),
|
||||
)
|
||||
|
||||
fmt.Println(query.DebugSql())
|
||||
//fmt.Println(query.DebugSql())
|
||||
|
||||
testutils.AssertDebugStatementSql(t, query, `
|
||||
SELECT all_types.timestamp = all_types.timestamp,
|
||||
|
|
@ -756,7 +755,7 @@ func TestTimeLiterals(t *testing.T) {
|
|||
TimestampT(timeT).AS("timestampT"),
|
||||
).FROM(AllTypes).LIMIT(1)
|
||||
|
||||
fmt.Println(query.Sql())
|
||||
//fmt.Println(query.Sql())
|
||||
|
||||
testutils.AssertStatementSql(t, query, `
|
||||
SELECT CAST(? AS DATE) AS "date",
|
||||
|
|
@ -783,7 +782,7 @@ LIMIT ?;
|
|||
err = query.Query(db, &dest)
|
||||
assert.NilError(t, err)
|
||||
|
||||
testutils.JsonPrint(dest)
|
||||
//testutils.PrintJson(dest)
|
||||
|
||||
testutils.AssertJSON(t, dest, `
|
||||
{
|
||||
|
|
|
|||
|
|
@ -63,8 +63,8 @@ ORDER BY actor.actor_id;
|
|||
assert.Equal(t, len(dest), 200)
|
||||
assert.DeepEqual(t, dest[0], actor1)
|
||||
|
||||
//testutils.JsonPrint(dest)
|
||||
//testutils.JsonSave(dest, "mysql/testdata/all_actors.json")
|
||||
//testutils.PrintJson(dest)
|
||||
//testutils.SaveJsonFile(dest, "mysql/testdata/all_actors.json")
|
||||
testutils.AssertJSONFile(t, dest, "mysql/testdata/all_actors.json")
|
||||
}
|
||||
|
||||
|
|
@ -129,11 +129,11 @@ ORDER BY payment.customer_id, SUM(payment.amount) ASC;
|
|||
|
||||
assert.NilError(t, err)
|
||||
|
||||
//testutils.JsonPrint(dest)
|
||||
//testutils.PrintJson(dest)
|
||||
|
||||
assert.Equal(t, len(dest), 174)
|
||||
|
||||
//testutils.JsonSave(dest, "mysql/testdata/customer_payment_sum.json")
|
||||
//testutils.SaveJsonFile(dest, "mysql/testdata/customer_payment_sum.json")
|
||||
testutils.AssertJSONFile(t, dest, "mysql/testdata/customer_payment_sum.json")
|
||||
}
|
||||
|
||||
|
|
@ -169,7 +169,7 @@ func TestSubQuery(t *testing.T) {
|
|||
err := query.Query(db, &dest)
|
||||
assert.NilError(t, err)
|
||||
|
||||
//testutils.JsonSave(dest, "mysql/testdata/r_rating_films.json")
|
||||
//testutils.SaveJsonFile(dest, "mysql/testdata/r_rating_films.json")
|
||||
testutils.AssertJSONFile(t, dest, "mysql/testdata/r_rating_films.json")
|
||||
}
|
||||
|
||||
|
|
@ -317,7 +317,7 @@ LIMIT ?;
|
|||
//assert.Equal(t, len(dest[0].Films), 10)
|
||||
//assert.Equal(t, len(dest[0].Films[0].Actors), 10)
|
||||
|
||||
//testutils.JsonSave(dest, "./mysql/testdata/lang_film_actor_inventory_rental.json")
|
||||
//testutils.SaveJsonFile(dest, "./mysql/testdata/lang_film_actor_inventory_rental.json")
|
||||
|
||||
testutils.AssertJSONFile(t, dest, "./mysql/testdata/lang_film_actor_inventory_rental.json")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package postgres
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/go-jet/jet/internal/testutils"
|
||||
"github.com/go-jet/jet/postgres"
|
||||
. "github.com/go-jet/jet/postgres"
|
||||
|
|
@ -94,7 +93,7 @@ LIMIT $5;
|
|||
|
||||
assert.NilError(t, err)
|
||||
|
||||
//testutils.JsonPrint(dest)
|
||||
//testutils.PrintJson(dest)
|
||||
|
||||
testutils.AssertJSON(t, dest, `
|
||||
[
|
||||
|
|
@ -233,11 +232,7 @@ func TestStringOperators(t *testing.T) {
|
|||
TO_HEX(AllTypes.IntegerPtr),
|
||||
)
|
||||
|
||||
//_, args, _ := query.Sql()
|
||||
|
||||
//fmt.Println(query.Sql())
|
||||
//fmt.Println(args[15])
|
||||
fmt.Println(query.Sql())
|
||||
|
||||
err := query.Query(db, &struct{}{})
|
||||
|
||||
|
|
@ -408,7 +403,7 @@ LIMIT $35;
|
|||
|
||||
assert.NilError(t, err)
|
||||
|
||||
//testutils.JsonPrint(dest)
|
||||
//testutils.PrintJson(dest)
|
||||
|
||||
testutils.AssertJSONFile(t, dest, "./testdata/common/float_operators.json")
|
||||
}
|
||||
|
|
@ -485,7 +480,7 @@ func TestIntegerOperators(t *testing.T) {
|
|||
CBRT(ABSi(AllTypes.BigInt)).AS("cbrt"),
|
||||
).LIMIT(2)
|
||||
|
||||
fmt.Println(query.Sql())
|
||||
//fmt.Println(query.Sql())
|
||||
|
||||
testutils.AssertStatementSql(t, query, `
|
||||
SELECT all_types.big_int AS "all_types.big_int",
|
||||
|
|
@ -547,8 +542,8 @@ LIMIT $22;
|
|||
|
||||
assert.NilError(t, err)
|
||||
|
||||
//testutils.JsonSave("./testdata/common/int_operators.json", dest)
|
||||
//testutils.JsonPrint(dest)
|
||||
//testutils.SaveJsonFile("./testdata/common/int_operators.json", dest)
|
||||
//testutils.PrintJson(dest)
|
||||
testutils.AssertJSONFile(t, dest, "./testdata/common/int_operators.json")
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1051,11 +1051,11 @@ ORDER BY customer.customer_id, SUM(payment.amount) ASC;
|
|||
|
||||
assert.NilError(t, err)
|
||||
|
||||
//testutils.JsonPrint(dest)
|
||||
//testutils.PrintJson(dest)
|
||||
|
||||
assert.Equal(t, len(dest), 104)
|
||||
|
||||
//testutils.JsonSave(dest, "postgres/testdata/customer_payment_sum.json")
|
||||
//testutils.SaveJsonFile(dest, "postgres/testdata/customer_payment_sum.json")
|
||||
testutils.AssertJSONFile(t, dest, "postgres/testdata/customer_payment_sum.json")
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue