mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 16:12:27 +08:00
mysql: update unit test to be ready for the xorm-removal (#78064)
* mysql: update unit test to be ready for the xorm-removal * removed unused code
This commit is contained in:
@ -81,15 +81,12 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
|
||||
sess := x.NewSession()
|
||||
t.Cleanup(sess.Close)
|
||||
db := sess.DB()
|
||||
fromStart := time.Date(2018, 3, 15, 13, 0, 0, 0, time.UTC)
|
||||
|
||||
t.Run("Given a table with different native data types", func(t *testing.T) {
|
||||
exists, err := sess.IsTableExist("mysql_types")
|
||||
_, err = db.Exec("DROP TABLE IF EXISTS mysql_types")
|
||||
require.NoError(t, err)
|
||||
if exists {
|
||||
err := sess.DropTable("mysql_types")
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
sql := "CREATE TABLE `mysql_types` ("
|
||||
sql += "`atinyint` tinyint(1) NOT NULL,"
|
||||
@ -124,7 +121,7 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
sql += "`avarcharnull` varchar(3),"
|
||||
sql += "`adecimalnull` decimal(10,2)"
|
||||
sql += ") ENGINE=InnoDB DEFAULT CHARSET=latin1;"
|
||||
_, err = sess.Exec(sql)
|
||||
_, err = db.Exec(sql)
|
||||
require.NoError(t, err)
|
||||
|
||||
sql = "INSERT INTO `mysql_types` "
|
||||
@ -136,7 +133,7 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
sql += "2.22, 3.33, current_timestamp(), now(), '11:11:11', '2018', 1, 'tinytext', "
|
||||
sql += "'tinyblob', 'text', 'blob', 'mediumtext', 'mediumblob', 'longtext', 'longblob', "
|
||||
sql += "'val2', 'a,b', curdate(), '2018-01-01 00:01:01.123456');"
|
||||
_, err = sess.Exec(sql)
|
||||
_, err = db.Exec(sql)
|
||||
require.NoError(t, err)
|
||||
|
||||
t.Run("Query with Table format should map MySQL column types to Go types", func(t *testing.T) {
|
||||
@ -202,13 +199,10 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
Value int64
|
||||
}
|
||||
|
||||
exists, err := sess.IsTableExist(metric{})
|
||||
_, err := db.Exec("DROP TABLE IF EXISTS metric")
|
||||
require.NoError(t, err)
|
||||
if exists {
|
||||
err := sess.DropTable(metric{})
|
||||
require.NoError(t, err)
|
||||
}
|
||||
err = sess.CreateTable(metric{})
|
||||
|
||||
_, err = db.Exec("CREATE TABLE IF NOT EXISTS metric (time DATETIME NULL, value BIGINT(20) NULL)")
|
||||
require.NoError(t, err)
|
||||
|
||||
series := []*metric{}
|
||||
@ -229,8 +223,10 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
_, err = sess.InsertMulti(series)
|
||||
require.NoError(t, err)
|
||||
for _, m := range series {
|
||||
_, err = db.Exec("INSERT INTO metric (`time`, `value`) VALUES (?, ?)", m.Time, m.Value)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
t.Run("When doing a metric query using timeGroup", func(t *testing.T) {
|
||||
query := &backend.QueryDataRequest{
|
||||
@ -442,13 +438,29 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
ValueFour int64 `xorm:"smallint(1) null 'valueFour'"`
|
||||
}
|
||||
|
||||
exists, err := sess.IsTableExist(metric_values{})
|
||||
_, err := db.Exec("DROP TABLE IF EXISTS metric_values")
|
||||
require.NoError(t, err)
|
||||
if exists {
|
||||
err := sess.DropTable(metric_values{})
|
||||
require.NoError(t, err)
|
||||
}
|
||||
err = sess.CreateTable(metric_values{})
|
||||
|
||||
// the strings contain backticks, so i cannot use a raw go string
|
||||
sqlCreateTable := "CREATE TABLE metric_values ("
|
||||
sqlCreateTable += " `time` DATETIME NOT NULL,"
|
||||
sqlCreateTable += " `timeNullable` DATETIME(6) NULL,"
|
||||
sqlCreateTable += " `timeInt64` BIGINT(20) NOT NULL,"
|
||||
sqlCreateTable += " `timeInt64Nullable` BIGINT(20) NULL,"
|
||||
sqlCreateTable += " `timeFloat64` DOUBLE NOT NULL,"
|
||||
sqlCreateTable += " `timeFloat64Nullable` DOUBLE NULL,"
|
||||
sqlCreateTable += " `timeInt32` INT(11) NOT NULL,"
|
||||
sqlCreateTable += " `timeInt32Nullable` INT(11) NULL,"
|
||||
sqlCreateTable += " `timeFloat32` DOUBLE NOT NULL,"
|
||||
sqlCreateTable += " `timeFloat32Nullable` DOUBLE NULL,"
|
||||
sqlCreateTable += " `measurement` VARCHAR(255) NULL,"
|
||||
sqlCreateTable += " `valueOne` INTEGER NULL,"
|
||||
sqlCreateTable += " `valueTwo` INTEGER NULL,"
|
||||
sqlCreateTable += " `valueThree` TINYINT(1) NULL,"
|
||||
sqlCreateTable += " `valueFour` SMALLINT(1) NULL"
|
||||
sqlCreateTable += ")"
|
||||
|
||||
_, err = db.Exec(sqlCreateTable)
|
||||
require.NoError(t, err)
|
||||
|
||||
rng := rand.New(rand.NewSource(time.Now().Unix()))
|
||||
@ -497,8 +509,24 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
series = append(series, &second)
|
||||
}
|
||||
|
||||
_, err = sess.InsertMulti(series)
|
||||
require.NoError(t, err)
|
||||
sqlInsertSeries := "INSERT INTO `metric_values` ("
|
||||
sqlInsertSeries += " `time`, `timeNullable`,"
|
||||
sqlInsertSeries += " `timeInt64`, `timeInt64Nullable`,"
|
||||
sqlInsertSeries += " `timeFloat64`, `timeFloat64Nullable`,"
|
||||
sqlInsertSeries += " `timeInt32`, `timeInt32Nullable`,"
|
||||
sqlInsertSeries += " `timeFloat32`, `timeFloat32Nullable`,"
|
||||
sqlInsertSeries += " `measurement`, `valueOne`, `valueTwo`, `valueThree`, `valueFour`)"
|
||||
sqlInsertSeries += " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
for _, m := range series {
|
||||
_, err = db.Exec(sqlInsertSeries,
|
||||
m.Time, m.TimeNullable,
|
||||
m.TimeInt64, m.TimeInt64Nullable,
|
||||
m.TimeFloat64, m.TimeFloat64Nullable,
|
||||
m.TimeInt32, m.TimeInt32Nullable,
|
||||
m.TimeFloat32, m.TimeFloat32Nullable,
|
||||
m.Measurement, m.ValueOne, m.ValueTwo, m.ValueThree, m.ValueFour)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
t.Run("When doing a metric query using time as time column should return metric with time in time.Time", func(t *testing.T) {
|
||||
query := &backend.QueryDataRequest{
|
||||
@ -896,13 +924,10 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
Tags string
|
||||
}
|
||||
|
||||
exists, err := sess.IsTableExist(event{})
|
||||
_, err := db.Exec("DROP TABLE IF EXISTS event")
|
||||
require.NoError(t, err)
|
||||
if exists {
|
||||
err := sess.DropTable(event{})
|
||||
require.NoError(t, err)
|
||||
}
|
||||
err = sess.CreateTable(event{})
|
||||
|
||||
_, err = db.Exec("CREATE TABLE IF NOT EXISTS event (time_sec BIGINT(20) NULL, description VARCHAR(255) NULL, tags VARCHAR(255) NULL)")
|
||||
require.NoError(t, err)
|
||||
|
||||
events := []*event{}
|
||||
@ -920,7 +945,7 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, e := range events {
|
||||
_, err := sess.Insert(e)
|
||||
_, err := db.Exec("INSERT INTO event (time_sec, description, tags) VALUES (?, ?, ?)", e.TimeSec, e.Description, e.Tags)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
@ -1232,18 +1257,10 @@ func TestIntegrationMySQL(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Given an empty table", func(t *testing.T) {
|
||||
type emptyObj struct {
|
||||
EmptyKey string
|
||||
EmptyVal int64
|
||||
}
|
||||
|
||||
exists, err := sess.IsTableExist(emptyObj{})
|
||||
_, err := db.Exec("DROP TABLE IF EXISTS empty_obj")
|
||||
require.NoError(t, err)
|
||||
if exists {
|
||||
err := sess.DropTable(emptyObj{})
|
||||
require.NoError(t, err)
|
||||
}
|
||||
err = sess.CreateTable(emptyObj{})
|
||||
|
||||
_, err = db.Exec("CREATE TABLE empty_obj (empty_key VARCHAR(255) NULL, empty_val BIGINT(20) NULL)")
|
||||
require.NoError(t, err)
|
||||
|
||||
t.Run("When no rows are returned, should return an empty frame", func(t *testing.T) {
|
||||
|
Reference in New Issue
Block a user