tidy up null value tests and avoid mymysql and postgres drive time handling
This commit is contained in:
parent
6b4eca8204
commit
aea4095558
70
base_test.go
70
base_test.go
|
@ -3156,45 +3156,51 @@ func testNullValue(engine *Engine, t *testing.T) {
|
||||||
// t.Error(errors.New(fmt.Sprintf("inserted value unmatch: [%v]", *nullDataGet.Complex128Ptr)))
|
// t.Error(errors.New(fmt.Sprintf("inserted value unmatch: [%v]", *nullDataGet.Complex128Ptr)))
|
||||||
// }
|
// }
|
||||||
|
|
||||||
/*if (*nullDataGet.TimePtr).Unix() != (*nullDataUpdate.TimePtr).Unix() {
|
// !nashtsai! skipped mymysql test due to driver will round up time caused inaccuracy comparison
|
||||||
t.Error(errors.New(fmt.Sprintf("inserted value unmatch: [%v]:[%v]", *nullDataGet.TimePtr, *nullDataUpdate.TimePtr)))
|
// skipped postgres test due to postgres driver doesn't read time.Time's timzezone info when stored in the db
|
||||||
} else {
|
// mysql and sqlite3 seem have done this correctly by storing datatime in UTC timezone, I think postgres driver
|
||||||
// !nashtsai! mymysql driver will failed this test case, due the time is roundup to nearest second, I would considered this is a bug in mymysql driver
|
// prefer using timestamp with timezone to sovle the issue
|
||||||
fmt.Printf("time value: [%v]:[%v]", *nullDataGet.TimePtr, *nullDataUpdate.TimePtr)
|
if engine.DriverName != POSTGRES || engine.DriverName != MYMYSQL {
|
||||||
fmt.Println()
|
if (*nullDataGet.TimePtr).Unix() != (*nullDataUpdate.TimePtr).Unix() {
|
||||||
}*/
|
t.Error(errors.New(fmt.Sprintf("inserted value unmatch: [%v]:[%v]", *nullDataGet.TimePtr, *nullDataUpdate.TimePtr)))
|
||||||
// --
|
} else {
|
||||||
|
// !nashtsai! mymysql driver will failed this test case, due the time is roundup to nearest second, I would considered this is a bug in mymysql driver
|
||||||
|
// inserted value unmatch: [2013-12-25 12:12:45 +0800 CST]:[2013-12-25 12:12:44.878903653 +0800 CST]
|
||||||
|
fmt.Printf("time value: [%v]:[%v]", *nullDataGet.TimePtr, *nullDataUpdate.TimePtr)
|
||||||
|
fmt.Println()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// update to null values
|
// update to null values
|
||||||
/*nullDataUpdate = NullData{}
|
nullDataUpdate = NullData{}
|
||||||
|
|
||||||
cnt, err = engine.Id(nullData.Id).Update(&nullDataUpdate)
|
cnt, err = engine.Id(nullData.Id).Cols("string_ptr").Update(&nullDataUpdate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
panic(err)
|
panic(err)
|
||||||
} else if cnt != 1 {
|
} else if cnt != 1 {
|
||||||
t.Error(errors.New("update count == 0, how can this happen!?"))
|
t.Error(errors.New("update count == 0, how can this happen!?"))
|
||||||
return
|
return
|
||||||
}*/
|
}
|
||||||
|
|
||||||
// verify get values
|
// verify get values
|
||||||
/*nullDataGet = NullData{}
|
nullDataGet = NullData{}
|
||||||
has, err = engine.Id(nullData.Id).Get(&nullDataGet)
|
has, err = engine.Id(nullData.Id).Get(&nullDataGet)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
} else if !has {
|
} else if !has {
|
||||||
t.Error(errors.New("ID not found"))
|
t.Error(errors.New("ID not found"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("%+v", nullDataGet)
|
fmt.Printf("%+v", nullDataGet)
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
|
|
||||||
if nullDataGet.StringPtr != nil {
|
|
||||||
t.Error(errors.New(fmt.Sprintf("not null value: [%v]", *nullDataGet.StringPtr)))
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if nullDataGet.StringPtr != nil {
|
||||||
|
t.Error(errors.New(fmt.Sprintf("not null value: [%v]", *nullDataGet.StringPtr)))
|
||||||
|
}
|
||||||
|
/*
|
||||||
if nullDataGet.StringPtr2 != nil {
|
if nullDataGet.StringPtr2 != nil {
|
||||||
t.Error(errors.New(fmt.Sprintf("not null value: [%v]", *nullDataGet.StringPtr2)))
|
t.Error(errors.New(fmt.Sprintf("not null value: [%v]", *nullDataGet.StringPtr2)))
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,6 @@ CREATE DATABASE IF NOT EXISTS xorm_test CHARACTER SET
|
||||||
utf8 COLLATE utf8_general_ci;
|
utf8 COLLATE utf8_general_ci;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var mysqlShowTestSql bool = true
|
|
||||||
|
|
||||||
func TestMysql(t *testing.T) {
|
func TestMysql(t *testing.T) {
|
||||||
err := mysqlDdlImport()
|
err := mysqlDdlImport()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -27,10 +25,10 @@ func TestMysql(t *testing.T) {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.ShowSQL = mysqlShowTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = mysqlShowTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = mysqlShowTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = mysqlShowTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
testAll(engine, t)
|
testAll(engine, t)
|
||||||
testAll2(engine, t)
|
testAll2(engine, t)
|
||||||
|
@ -51,10 +49,10 @@ func TestMysqlWithCache(t *testing.T) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
engine.SetDefaultCacher(NewLRUCacher(NewMemoryStore(), 1000))
|
||||||
engine.ShowSQL = mysqlShowTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = mysqlShowTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = mysqlShowTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = mysqlShowTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
testAll(engine, t)
|
testAll(engine, t)
|
||||||
testAll2(engine, t)
|
testAll2(engine, t)
|
||||||
|
@ -69,10 +67,10 @@ func mysqlDdlImport() error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
engine.ShowSQL = mysqlShowTestSql
|
engine.ShowSQL = showTestSql
|
||||||
engine.ShowErr = mysqlShowTestSql
|
engine.ShowErr = showTestSql
|
||||||
engine.ShowWarn = mysqlShowTestSql
|
engine.ShowWarn = showTestSql
|
||||||
engine.ShowDebug = mysqlShowTestSql
|
engine.ShowDebug = showTestSql
|
||||||
|
|
||||||
sqlResults, _ := engine.Import("tests/mysql_ddl.sql")
|
sqlResults, _ := engine.Import("tests/mysql_ddl.sql")
|
||||||
engine.LogDebug("sql results: %v", sqlResults)
|
engine.LogDebug("sql results: %v", sqlResults)
|
||||||
|
|
Loading…
Reference in New Issue