Skip to content

Commit 96f841a

Browse files
Switch all unit tests to use stretchr/testify for assertions.
1 parent 48cb9ab commit 96f841a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+24066
-559
lines changed

go.mod

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,21 @@ require (
88
github.com/go-sql-driver/mysql v1.8.1
99
github.com/google/uuid v1.6.0
1010
github.com/openark/golib v0.0.0-20210531070646-355f37940af8
11+
github.com/stretchr/testify v1.9.0
1112
golang.org/x/net v0.24.0
1213
golang.org/x/term v0.19.0
1314
golang.org/x/text v0.14.0
1415
)
1516

1617
require (
1718
filippo.io/edwards25519 v1.1.0 // indirect
19+
github.com/davecgh/go-spew v1.1.1 // indirect
1820
github.com/pingcap/errors v0.11.5-0.20210425183316-da1aaba5fb63 // indirect
21+
github.com/pmezard/go-difflib v1.0.0 // indirect
1922
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 // indirect
2023
github.com/siddontang/go v0.0.0-20180604090527-bdc77568d726 // indirect
2124
github.com/siddontang/go-log v0.0.0-20180807004314-8d05993dda07 // indirect
2225
go.uber.org/atomic v1.7.0 // indirect
2326
golang.org/x/sys v0.19.0 // indirect
27+
gopkg.in/yaml.v3 v3.0.1 // indirect
2428
)

go.sum

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
2020
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
2121
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
2222
github.com/jmoiron/sqlx v1.3.3/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ=
23+
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
2324
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
2425
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
26+
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
2527
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
2628
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
2729
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
@@ -51,8 +53,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
5153
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
5254
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
5355
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
54-
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
5556
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
57+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
58+
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
5659
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
5760
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
5861
go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
@@ -99,6 +102,7 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T
99102
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
100103
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
101104
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
105+
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
102106
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
103107
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
104108
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

go/base/context_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"time"
1212

1313
"github.com/openark/golib/log"
14-
test "github.com/openark/golib/tests"
14+
"github.com/stretchr/testify/require"
1515
)
1616

1717
func init() {
@@ -22,22 +22,22 @@ func TestGetTableNames(t *testing.T) {
2222
{
2323
context := NewMigrationContext()
2424
context.OriginalTableName = "some_table"
25-
test.S(t).ExpectEquals(context.GetOldTableName(), "_some_table_del")
26-
test.S(t).ExpectEquals(context.GetGhostTableName(), "_some_table_gho")
27-
test.S(t).ExpectEquals(context.GetChangelogTableName(), "_some_table_ghc")
25+
require.Equal(t, "_some_table_del", context.GetOldTableName())
26+
require.Equal(t, "_some_table_gho", context.GetGhostTableName())
27+
require.Equal(t, "_some_table_ghc", context.GetChangelogTableName(), "_some_table_ghc")
2828
}
2929
{
3030
context := NewMigrationContext()
3131
context.OriginalTableName = "a123456789012345678901234567890123456789012345678901234567890"
32-
test.S(t).ExpectEquals(context.GetOldTableName(), "_a1234567890123456789012345678901234567890123456789012345678_del")
33-
test.S(t).ExpectEquals(context.GetGhostTableName(), "_a1234567890123456789012345678901234567890123456789012345678_gho")
34-
test.S(t).ExpectEquals(context.GetChangelogTableName(), "_a1234567890123456789012345678901234567890123456789012345678_ghc")
32+
require.Equal(t, "_a1234567890123456789012345678901234567890123456789012345678_del", context.GetOldTableName())
33+
require.Equal(t, "_a1234567890123456789012345678901234567890123456789012345678_gho", context.GetGhostTableName())
34+
require.Equal(t, "_a1234567890123456789012345678901234567890123456789012345678_ghc", context.GetChangelogTableName())
3535
}
3636
{
3737
context := NewMigrationContext()
3838
context.OriginalTableName = "a123456789012345678901234567890123456789012345678901234567890123"
3939
oldTableName := context.GetOldTableName()
40-
test.S(t).ExpectEquals(oldTableName, "_a1234567890123456789012345678901234567890123456789012345678_del")
40+
require.Equal(t, "_a1234567890123456789012345678901234567890123456789012345678_del", oldTableName)
4141
}
4242
{
4343
context := NewMigrationContext()
@@ -46,15 +46,15 @@ func TestGetTableNames(t *testing.T) {
4646
longForm := "Jan 2, 2006 at 3:04pm (MST)"
4747
context.StartTime, _ = time.Parse(longForm, "Feb 3, 2013 at 7:54pm (PST)")
4848
oldTableName := context.GetOldTableName()
49-
test.S(t).ExpectEquals(oldTableName, "_a1234567890123456789012345678901234567890123_20130203195400_del")
49+
require.Equal(t, "_a1234567890123456789012345678901234567890123_20130203195400_del", oldTableName)
5050
}
5151
{
5252
context := NewMigrationContext()
5353
context.OriginalTableName = "foo_bar_baz"
5454
context.ForceTmpTableName = "tmp"
55-
test.S(t).ExpectEquals(context.GetOldTableName(), "_tmp_del")
56-
test.S(t).ExpectEquals(context.GetGhostTableName(), "_tmp_gho")
57-
test.S(t).ExpectEquals(context.GetChangelogTableName(), "_tmp_ghc")
55+
require.Equal(t, "_tmp_del", context.GetOldTableName())
56+
require.Equal(t, "_tmp_gho", context.GetGhostTableName())
57+
require.Equal(t, "_tmp_ghc", context.GetChangelogTableName())
5858
}
5959
}
6060

go/base/load_map_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"testing"
1010

1111
"github.com/openark/golib/log"
12-
test "github.com/openark/golib/tests"
12+
"github.com/stretchr/testify/require"
1313
)
1414

1515
func init() {
@@ -20,39 +20,39 @@ func TestParseLoadMap(t *testing.T) {
2020
{
2121
loadList := ""
2222
m, err := ParseLoadMap(loadList)
23-
test.S(t).ExpectNil(err)
24-
test.S(t).ExpectEquals(len(m), 0)
23+
require.NoError(t, err)
24+
require.Len(t, m, 0)
2525
}
2626
{
2727
loadList := "threads_running=20,threads_connected=10"
2828
m, err := ParseLoadMap(loadList)
29-
test.S(t).ExpectNil(err)
30-
test.S(t).ExpectEquals(len(m), 2)
31-
test.S(t).ExpectEquals(m["threads_running"], int64(20))
32-
test.S(t).ExpectEquals(m["threads_connected"], int64(10))
29+
require.NoError(t, err)
30+
require.Len(t, m, 2)
31+
require.Equal(t, int64(20), m["threads_running"])
32+
require.Equal(t, int64(10), m["threads_connected"])
3333
}
3434
{
3535
loadList := "threads_running=20=30,threads_connected=10"
3636
_, err := ParseLoadMap(loadList)
37-
test.S(t).ExpectNotNil(err)
37+
require.Error(t, err)
3838
}
3939
{
4040
loadList := "threads_running=20,threads_connected"
4141
_, err := ParseLoadMap(loadList)
42-
test.S(t).ExpectNotNil(err)
42+
require.Error(t, err)
4343
}
4444
}
4545

4646
func TestString(t *testing.T) {
4747
{
4848
m, _ := ParseLoadMap("")
4949
s := m.String()
50-
test.S(t).ExpectEquals(s, "")
50+
require.Equal(t, "", s)
5151
}
5252
{
5353
loadList := "threads_running=20,threads_connected=10"
5454
m, _ := ParseLoadMap(loadList)
5555
s := m.String()
56-
test.S(t).ExpectEquals(s, "threads_connected=10,threads_running=20")
56+
require.Equal(t, "threads_connected=10,threads_running=20", s)
5757
}
5858
}

go/base/utils_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"testing"
1010

1111
"github.com/openark/golib/log"
12-
test "github.com/openark/golib/tests"
12+
"github.com/stretchr/testify/require"
1313
)
1414

1515
func init() {
@@ -19,11 +19,11 @@ func init() {
1919
func TestStringContainsAll(t *testing.T) {
2020
s := `insert,delete,update`
2121

22-
test.S(t).ExpectFalse(StringContainsAll(s))
23-
test.S(t).ExpectFalse(StringContainsAll(s, ""))
24-
test.S(t).ExpectFalse(StringContainsAll(s, "drop"))
25-
test.S(t).ExpectTrue(StringContainsAll(s, "insert"))
26-
test.S(t).ExpectFalse(StringContainsAll(s, "insert", "drop"))
27-
test.S(t).ExpectTrue(StringContainsAll(s, "insert", ""))
28-
test.S(t).ExpectTrue(StringContainsAll(s, "insert", "update", "delete"))
22+
require.False(t, StringContainsAll(s))
23+
require.False(t, StringContainsAll(s, ""))
24+
require.False(t, StringContainsAll(s, "drop"))
25+
require.True(t, StringContainsAll(s, "insert"))
26+
require.False(t, StringContainsAll(s, "insert", "drop"))
27+
require.True(t, StringContainsAll(s, "insert", ""))
28+
require.True(t, StringContainsAll(s, "insert", "update", "delete"))
2929
}

go/logic/applier_test.go

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"strings"
1010
"testing"
1111

12-
test "github.com/openark/golib/tests"
12+
"github.com/stretchr/testify/require"
1313

1414
"github.com/github/gh-ost/go/base"
1515
"github.com/github/gh-ost/go/binlog"
@@ -21,33 +21,33 @@ func TestApplierGenerateSqlModeQuery(t *testing.T) {
2121
applier := NewApplier(migrationContext)
2222

2323
{
24-
test.S(t).ExpectEquals(
25-
applier.generateSqlModeQuery(),
24+
require.Equal(t,
2625
`sql_mode = CONCAT(@@session.sql_mode, ',NO_AUTO_VALUE_ON_ZERO,STRICT_ALL_TABLES')`,
26+
applier.generateSqlModeQuery(),
2727
)
2828
}
2929
{
3030
migrationContext.SkipStrictMode = true
3131
migrationContext.AllowZeroInDate = false
32-
test.S(t).ExpectEquals(
33-
applier.generateSqlModeQuery(),
32+
require.Equal(t,
3433
`sql_mode = CONCAT(@@session.sql_mode, ',NO_AUTO_VALUE_ON_ZERO')`,
34+
applier.generateSqlModeQuery(),
3535
)
3636
}
3737
{
3838
migrationContext.SkipStrictMode = false
3939
migrationContext.AllowZeroInDate = true
40-
test.S(t).ExpectEquals(
41-
applier.generateSqlModeQuery(),
40+
require.Equal(t,
4241
`sql_mode = REPLACE(REPLACE(CONCAT(@@session.sql_mode, ',NO_AUTO_VALUE_ON_ZERO,STRICT_ALL_TABLES'), 'NO_ZERO_IN_DATE', ''), 'NO_ZERO_DATE', '')`,
42+
applier.generateSqlModeQuery(),
4343
)
4444
}
4545
{
4646
migrationContext.SkipStrictMode = true
4747
migrationContext.AllowZeroInDate = true
48-
test.S(t).ExpectEquals(
49-
applier.generateSqlModeQuery(),
48+
require.Equal(t,
5049
`sql_mode = REPLACE(REPLACE(CONCAT(@@session.sql_mode, ',NO_AUTO_VALUE_ON_ZERO'), 'NO_ZERO_IN_DATE', ''), 'NO_ZERO_DATE', '')`,
50+
applier.generateSqlModeQuery(),
5151
)
5252
}
5353
}
@@ -72,8 +72,8 @@ func TestApplierUpdateModifiesUniqueKeyColumns(t *testing.T) {
7272
NewColumnValues: columnValues,
7373
WhereColumnValues: columnValues,
7474
})
75-
test.S(t).ExpectEquals(modifiedColumn, "")
76-
test.S(t).ExpectFalse(isModified)
75+
require.Equal(t, "", modifiedColumn)
76+
require.False(t, isModified)
7777
})
7878

7979
t.Run("modified", func(t *testing.T) {
@@ -83,8 +83,8 @@ func TestApplierUpdateModifiesUniqueKeyColumns(t *testing.T) {
8383
NewColumnValues: sql.ToColumnValues([]interface{}{123456, 24}),
8484
WhereColumnValues: columnValues,
8585
})
86-
test.S(t).ExpectEquals(modifiedColumn, "item_id")
87-
test.S(t).ExpectTrue(isModified)
86+
require.Equal(t, "item_id", modifiedColumn)
87+
require.True(t, isModified)
8888
})
8989
}
9090

@@ -112,17 +112,17 @@ func TestApplierBuildDMLEventQuery(t *testing.T) {
112112
}
113113

114114
res := applier.buildDMLEventQuery(binlogEvent)
115-
test.S(t).ExpectEquals(len(res), 1)
116-
test.S(t).ExpectNil(res[0].err)
117-
test.S(t).ExpectEquals(strings.TrimSpace(res[0].query), `delete /* gh-ost `+"`test`.`_test_gho`"+` */
115+
require.Len(t, res, 1)
116+
require.NoError(t, res[0].err)
117+
require.Equal(t, `delete /* gh-ost `+"`test`.`_test_gho`"+` */
118118
from
119119
`+"`test`.`_test_gho`"+`
120120
where
121121
((`+"`id`"+` = ?) and (`+"`item_id`"+` = ?))`,
122-
)
123-
test.S(t).ExpectEquals(len(res[0].args), 2)
124-
test.S(t).ExpectEquals(res[0].args[0], 123456)
125-
test.S(t).ExpectEquals(res[0].args[1], 42)
122+
strings.TrimSpace(res[0].query))
123+
require.Len(t, res[0].args, 2)
124+
require.Equal(t, 123456, res[0].args[0])
125+
require.Equal(t, 42, res[0].args[1])
126126
})
127127

128128
t.Run("insert", func(t *testing.T) {
@@ -132,18 +132,19 @@ func TestApplierBuildDMLEventQuery(t *testing.T) {
132132
NewColumnValues: columnValues,
133133
}
134134
res := applier.buildDMLEventQuery(binlogEvent)
135-
test.S(t).ExpectEquals(len(res), 1)
136-
test.S(t).ExpectNil(res[0].err)
137-
test.S(t).ExpectEquals(strings.TrimSpace(res[0].query),
135+
require.Len(t, res, 1)
136+
require.NoError(t, res[0].err)
137+
require.Equal(t,
138138
`replace /* gh-ost `+"`test`.`_test_gho`"+` */
139139
into
140140
`+"`test`.`_test_gho`"+`
141141
`+"(`id`, `item_id`)"+`
142142
values
143-
(?, ?)`)
144-
test.S(t).ExpectEquals(len(res[0].args), 2)
145-
test.S(t).ExpectEquals(res[0].args[0], 123456)
146-
test.S(t).ExpectEquals(res[0].args[1], 42)
143+
(?, ?)`,
144+
strings.TrimSpace(res[0].query))
145+
require.Len(t, res[0].args, 2)
146+
require.Equal(t, 123456, res[0].args[0])
147+
require.Equal(t, 42, res[0].args[1])
147148
})
148149

149150
t.Run("update", func(t *testing.T) {
@@ -154,20 +155,21 @@ func TestApplierBuildDMLEventQuery(t *testing.T) {
154155
WhereColumnValues: columnValues,
155156
}
156157
res := applier.buildDMLEventQuery(binlogEvent)
157-
test.S(t).ExpectEquals(len(res), 1)
158-
test.S(t).ExpectNil(res[0].err)
159-
test.S(t).ExpectEquals(strings.TrimSpace(res[0].query),
158+
require.Len(t, res, 1)
159+
require.NoError(t, res[0].err)
160+
require.Equal(t,
160161
`update /* gh-ost `+"`test`.`_test_gho`"+` */
161162
`+"`test`.`_test_gho`"+`
162163
set
163164
`+"`id`"+`=?, `+"`item_id`"+`=?
164165
where
165-
((`+"`id`"+` = ?) and (`+"`item_id`"+` = ?))`)
166-
test.S(t).ExpectEquals(len(res[0].args), 4)
167-
test.S(t).ExpectEquals(res[0].args[0], 123456)
168-
test.S(t).ExpectEquals(res[0].args[1], 42)
169-
test.S(t).ExpectEquals(res[0].args[2], 123456)
170-
test.S(t).ExpectEquals(res[0].args[3], 42)
166+
((`+"`id`"+` = ?) and (`+"`item_id`"+` = ?))`,
167+
strings.TrimSpace(res[0].query))
168+
require.Len(t, res[0].args, 4)
169+
require.Equal(t, 123456, res[0].args[0])
170+
require.Equal(t, 42, res[0].args[1])
171+
require.Equal(t, 123456, res[0].args[2])
172+
require.Equal(t, 42, res[0].args[3])
171173
})
172174
}
173175

@@ -180,6 +182,6 @@ func TestApplierInstantDDL(t *testing.T) {
180182

181183
t.Run("instantDDLstmt", func(t *testing.T) {
182184
stmt := applier.generateInstantDDLQuery()
183-
test.S(t).ExpectEquals(stmt, "ALTER /* gh-ost */ TABLE `test`.`mytable` ADD INDEX (foo), ALGORITHM=INSTANT")
185+
require.Equal(t, "ALTER /* gh-ost */ TABLE `test`.`mytable` ADD INDEX (foo), ALGORITHM=INSTANT", stmt)
184186
})
185187
}

0 commit comments

Comments
 (0)