Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 package db | |
| 2 | |
| 3 import ( | |
| 4 "fmt" | |
| 5 "os" | |
| 6 "testing" | |
| 7 ) | |
| 8 | |
| 9 import ( | |
| 10 // Using 'require' which is like using 'assert' but causes tests to fail . | |
| 11 assert "github.com/stretchr/testify/require" | |
| 12 ) | |
| 13 | |
| 14 // Connection string to the local MySQL database for testing. | |
|
jcgregorio
2014/09/30 14:54:08
So I need a local MySQL instance to run this test?
stephana
2014/09/30 18:11:50
Yes. I have changed it so that it checks whether t
| |
| 15 const MYSQL_DB_OPEN = "root:%s@tcp(localhost:3306)/skia?parseTime=true" | |
| 16 | |
| 17 func TestDBVersioning(t *testing.T) { | |
| 18 // Initialize without argument to test against SQLite3 | |
| 19 Init("") | |
| 20 assert.False(t, isMySQL) | |
| 21 testDBVersioning(t) | |
| 22 | |
| 23 // Initialize to test against local MySQL db | |
| 24 Init(fmt.Sprintf(MYSQL_DB_OPEN, os.Getenv("MYSQL_TESTING_ROOTPW"))) | |
| 25 assert.True(t, isMySQL) | |
| 26 testDBVersioning(t) | |
| 27 } | |
| 28 | |
| 29 // Test wether the migration scripts execute. | |
| 30 func testDBVersioning(t *testing.T) { | |
| 31 // get the DB version | |
| 32 dbVersion, err := DBVersion() | |
| 33 assert.Nil(t, err) | |
| 34 maxVersion := MaxDBVersion() | |
| 35 | |
| 36 // downgrade to 0 | |
| 37 err = Migrate(0) | |
| 38 assert.Nil(t, err) | |
| 39 dbVersion, err = DBVersion() | |
| 40 assert.Nil(t, err) | |
| 41 assert.Equal(t, 0, dbVersion) | |
| 42 | |
| 43 // upgrade the the latest version | |
| 44 err = Migrate(maxVersion) | |
| 45 assert.Nil(t, err) | |
| 46 dbVersion, err = DBVersion() | |
| 47 assert.Nil(t, err) | |
| 48 assert.Equal(t, maxVersion, dbVersion) | |
| 49 } | |
| OLD | NEW |