diff --git a/internal/sqladapter/collection.go b/internal/sqladapter/collection.go index 14d4ac8a40fec7ad4d9b22bd0b0b0368284cf015..bb21e27a9e3fe6874374ef958fbfc9b545a26df5 100644 --- a/internal/sqladapter/collection.go +++ b/internal/sqladapter/collection.go @@ -85,12 +85,12 @@ func (c *collection) InsertReturning(item interface{}) error { if err != nil { return err } - defer tx.Close() + defer tx.(Database).Close() } var res db.Result - col := tx.Collection(c.p.Name()) + col := tx.(Database).Collection(c.p.Name()) id, err := col.Insert(item) if err != nil { diff --git a/internal/sqladapter/testing/adapter.go.tpl b/internal/sqladapter/testing/adapter.go.tpl index b0a18eb313ca632dc89139eee716dbbda8d39317..c8f05b1f31a41fa844c1174a0427c4e42eac1c64 100644 --- a/internal/sqladapter/testing/adapter.go.tpl +++ b/internal/sqladapter/testing/adapter.go.tpl @@ -1,3 +1,5 @@ +// +build generated + package ADAPTER import ( diff --git a/internal/sqladapter/tx.go b/internal/sqladapter/tx.go index 059c3f8e93ce5a03722fccad5a452ab91ba457ae..ee34446a746884e51c29c14eef21ab26b674b197 100644 --- a/internal/sqladapter/tx.go +++ b/internal/sqladapter/tx.go @@ -31,8 +31,10 @@ import ( // Tx represents a database session within a transaction. type DatabaseTx interface { - Database + BaseDatabase BaseTx + + PartialDatabase } // BaseTx defines methods to be implemented by a transaction. diff --git a/mysql/Makefile b/mysql/Makefile index a948f6c6cc7cb530e3d9342600f46580ed5ae223..55c17dabab4c3881100324dca499fd9dacc9457c 100644 --- a/mysql/Makefile +++ b/mysql/Makefile @@ -36,7 +36,7 @@ reset-db: require-client mysql -uroot -h"$(DB_HOST)" -P$(DB_PORT) <<< $$SQL test: reset-db generate - go test -v -race + go test -tags generated -v -race bench: reset-db generate - go test -v -test.bench=. -test.benchtime=$(BENCHTIME) -benchmem + go test -tags generated -v -test.bench=. -test.benchtime=$(BENCHTIME) -benchmem diff --git a/mysql/stubs_test.go b/mysql/stubs_test.go new file mode 100644 index 0000000000000000000000000000000000000000..4fd997e1c7b886eee462e06e3dd489f2597a4c30 --- /dev/null +++ b/mysql/stubs_test.go @@ -0,0 +1,18 @@ +// +build !generated + +package mysql + +import ( + "log" + "testing" + + "upper.io/db.v2/lib/sqlbuilder" +) + +func mustOpen() sqlbuilder.Database { + return nil +} + +func TestMain(*testing.M) { + log.Fatal(`Tests use generated code and a custom database, please use "make test".`) +} diff --git a/postgresql/Makefile b/postgresql/Makefile index d173c8e3ae3ece29e5b5453e0fd5006ebb3044dd..fa2e6922fc9efc292e8ba1f962234771bf6518af 100644 --- a/postgresql/Makefile +++ b/postgresql/Makefile @@ -43,7 +43,7 @@ reset-db: require-client fi test: reset-db generate - go test -v -race + go test -tags generated -v -race bench: reset-db generate - go test -v -test.bench=. -test.benchtime=$(BENCHTIME) -benchmem + go test -tags generated -v -test.bench=. -test.benchtime=$(BENCHTIME) -benchmem diff --git a/postgresql/stubs_test.go b/postgresql/stubs_test.go new file mode 100644 index 0000000000000000000000000000000000000000..c07cf41230300c889131187e7612d63143fe8763 --- /dev/null +++ b/postgresql/stubs_test.go @@ -0,0 +1,18 @@ +// +build !generated + +package postgresql + +import ( + "log" + "testing" + + "upper.io/db.v2/lib/sqlbuilder" +) + +func mustOpen() sqlbuilder.Database { + return nil +} + +func TestMain(*testing.M) { + log.Fatal(`Tests use generated code and a custom database, please use "make test".`) +} diff --git a/ql/Makefile b/ql/Makefile index 9b3e657e2b05411123f9806d162e73c3074bd561..25870bbd69d01cb43a68811127f48e4acff10955 100644 --- a/ql/Makefile +++ b/ql/Makefile @@ -23,7 +23,7 @@ reset-db: require-client rm -f $(DB_NAME) test: reset-db generate - go test -v + go test -tags generated -v bench: reset-db generate - go test -v -bench=. -benchtime=$(BENCHTIME) -benchmem -test.parallel=1 -short -cpu 1 + go test -tags generated -v -bench=. -benchtime=$(BENCHTIME) -benchmem -test.parallel=1 -short -cpu 1 diff --git a/ql/stubs_test.go b/ql/stubs_test.go new file mode 100644 index 0000000000000000000000000000000000000000..58dda9591bc9c0fb7fe449effdb8e7edd8ea69d8 --- /dev/null +++ b/ql/stubs_test.go @@ -0,0 +1,18 @@ +// +build !generated + +package ql + +import ( + "log" + "testing" + + "upper.io/db.v2/lib/sqlbuilder" +) + +func mustOpen() sqlbuilder.Database { + return nil +} + +func TestMain(*testing.M) { + log.Fatal(`Tests use generated code and a custom database, please use "make test".`) +} diff --git a/ql/tx.go b/ql/tx.go index 7bcec59f780fed9e43b05f76eb03d3b807cfb273..146417317cdaa2621725e81f430bdaba09570cd9 100644 --- a/ql/tx.go +++ b/ql/tx.go @@ -22,8 +22,8 @@ package ql import ( - "upper.io/db.v2" "upper.io/db.v2/internal/sqladapter" + "upper.io/db.v2/lib/sqlbuilder" ) type tx struct { @@ -31,5 +31,5 @@ type tx struct { } var ( - _ = db.Tx(&tx{}) + _ = sqlbuilder.Tx(&tx{}) ) diff --git a/sqlite/Makefile b/sqlite/Makefile index a88d1bfc9dee8d4f87ec65895785c77f4d3de57c..00945272b826a6bd345bdcaec8f7587c689d596c 100644 --- a/sqlite/Makefile +++ b/sqlite/Makefile @@ -23,7 +23,7 @@ reset-db: require-client rm -f $(DB_NAME) test: reset-db generate - go test -v -race + go test -tags generated -v -race bench: reset-db generate - go test -v -test.bench=. -test.benchtime=$(BENCHTIME) -benchmem + go test -tags generated -v -test.bench=. -test.benchtime=$(BENCHTIME) -benchmem diff --git a/sqlite/stubs_test.go b/sqlite/stubs_test.go new file mode 100644 index 0000000000000000000000000000000000000000..cd1dfdbc7673d285c5fe90f9bff2f8f3ef25a1c2 --- /dev/null +++ b/sqlite/stubs_test.go @@ -0,0 +1,18 @@ +// +build !generated + +package sqlite + +import ( + "log" + "testing" + + "upper.io/db.v2/lib/sqlbuilder" +) + +func mustOpen() sqlbuilder.Database { + return nil +} + +func TestMain(*testing.M) { + log.Fatal(`Tests use generated code and a custom database, please use "make test".`) +}