Skip to content

Commit c8ac860

Browse files
committed
Create Proper Migration tests
Unfortunately our testing regime has so far meant that migrations do not get proper testing. This PR begins the process of creating migration tests for this. Signed-off-by: Andrew Thornton <[email protected]>
1 parent f4e677e commit c8ac860

File tree

7 files changed

+627
-14
lines changed

7 files changed

+627
-14
lines changed

Makefile

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ LDFLAGS := $(LDFLAGS) -X "main.MakeVersion=$(MAKE_VERSION)" -X "main.Version=$(G
8989

9090
LINUX_ARCHS ?= linux/amd64,linux/386,linux/arm-5,linux/arm-6,linux/arm64
9191

92-
GO_PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations/migration-test,$(filter-out code.gitea.io/gitea/integrations,$(shell $(GO) list -mod=vendor ./... | grep -v /vendor/)))
92+
GO_PACKAGES ?= $(filter-out code.gitea.io/gitea/models/migrations code.gitea.io/gitea/integrations/migration-test code.gitea.io/gitea/integrations,$(shell $(GO) list -mod=vendor ./... | grep -v /vendor/))
9393

9494
FOMANTIC_CONFIGS := semantic.json web_src/fomantic/theme.config.less web_src/fomantic/_site/globals/site.variables
9595
FOMANTIC_DEST := web_src/fomantic/build/semantic.js web_src/fomantic/build/semantic.css
@@ -399,8 +399,9 @@ test-sqlite\#%: integrations.sqlite.test generate-ini-sqlite
399399
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test -test.run $(subst .,/,$*)
400400

401401
.PHONY: test-sqlite-migration
402-
test-sqlite-migration: migrations.sqlite.test generate-ini-sqlite
402+
test-sqlite-migration: migrations.sqlite.test migrations.individual.sqlite.test generate-ini-sqlite
403403
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/sqlite.ini ./migrations.sqlite.test
404+
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/sqlite.ini ./migrations.individual.sqlite.test
404405

405406
generate-ini-mysql:
406407
sed -e 's|{{TEST_MYSQL_HOST}}|${TEST_MYSQL_HOST}|g' \
@@ -419,8 +420,9 @@ test-mysql\#%: integrations.mysql.test generate-ini-mysql
419420
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mysql.ini ./integrations.mysql.test -test.run $(subst .,/,$*)
420421

421422
.PHONY: test-mysql-migration
422-
test-mysql-migration: migrations.mysql.test generate-ini-mysql
423+
test-mysql-migration: migrations.mysql.test migrations.individual.mysql.test generate-ini-mysql
423424
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mysql.ini ./migrations.mysql.test
425+
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mysql.ini ./migrations.individual.mysql.test
424426

425427
generate-ini-mysql8:
426428
sed -e 's|{{TEST_MYSQL8_HOST}}|${TEST_MYSQL8_HOST}|g' \
@@ -439,8 +441,9 @@ test-mysql8\#%: integrations.mysql8.test generate-ini-mysql8
439441
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mysql8.ini ./integrations.mysql8.test -test.run $(subst .,/,$*)
440442

441443
.PHONY: test-mysql8-migration
442-
test-mysql8-migration: migrations.mysql8.test generate-ini-mysql8
444+
test-mysql8-migration: migrations.mysql8.test migrations.individual.mysql8.test generate-ini-mysql8
443445
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mysql8.ini ./migrations.mysql8.test
446+
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mysql8.ini ./migrations.individual.mysql8.test
444447

445448
generate-ini-pgsql:
446449
sed -e 's|{{TEST_PGSQL_HOST}}|${TEST_PGSQL_HOST}|g' \
@@ -460,8 +463,9 @@ test-pgsql\#%: integrations.pgsql.test generate-ini-pgsql
460463
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/pgsql.ini ./integrations.pgsql.test -test.run $(subst .,/,$*)
461464

462465
.PHONY: test-pgsql-migration
463-
test-pgsql-migration: migrations.pgsql.test generate-ini-pgsql
466+
test-pgsql-migration: migrations.pgsql.test migrations.individual.pgsql.test generate-ini-pgsql
464467
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/pgsql.ini ./migrations.pgsql.test
468+
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/pgsql.ini ./migrations.individual.pgsql.test
465469

466470
generate-ini-mssql:
467471
sed -e 's|{{TEST_MSSQL_HOST}}|${TEST_MSSQL_HOST}|g' \
@@ -480,8 +484,9 @@ test-mssql\#%: integrations.mssql.test generate-ini-mssql
480484
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mssql.ini ./integrations.mssql.test -test.run $(subst .,/,$*)
481485

482486
.PHONY: test-mssql-migration
483-
test-mssql-migration: migrations.mssql.test generate-ini-mssql
487+
test-mssql-migration: migrations.mssql.test migrations.individual.mssql.test generate-ini-mssql
484488
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mssql.ini ./migrations.mssql.test -test.failfast
489+
GITEA_ROOT="$(CURDIR)" GITEA_CONF=integrations/mssql.ini ./migrations.individual.mssql.test -test.failfast
485490

486491
.PHONY: bench-sqlite
487492
bench-sqlite: integrations.sqlite.test generate-ini-sqlite
@@ -541,6 +546,26 @@ migrations.mssql.test: $(GO_SOURCES)
541546
migrations.sqlite.test: $(GO_SOURCES)
542547
$(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/integrations/migration-test -o migrations.sqlite.test -tags '$(TEST_TAGS)'
543548

549+
.PHONY: migrations.individual.mysql.test
550+
migrations.individual.mysql.test: $(GO_SOURCES)
551+
$(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/models/migrations -o migrations.individual.mysql.test
552+
553+
.PHONY: migrations.individual.mysql8.test
554+
migrations.individual.mysql8.test: $(GO_SOURCES)
555+
$(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/models/migrations -o migrations.individual.mysql8.test
556+
557+
.PHONY: migrations.individual.pgsql.test
558+
migrations.individual.pgsql.test: $(GO_SOURCES)
559+
$(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/models/migrations -o migrations.individual.pgsql.test
560+
561+
.PHONY: migrations.individual.mssql.test
562+
migrations.individual.mssql.test: $(GO_SOURCES)
563+
$(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/models/migrations -o migrations.individual.mssql.test
564+
565+
.PHONY: migrations.individual.sqlite.test
566+
migrations.individual.sqlite.test: $(GO_SOURCES)
567+
$(GO) test $(GOTESTFLAGS) -c code.gitea.io/gitea/models/migrations -o migrations.individual.sqlite.test -tags '$(TEST_TAGS)'
568+
544569
.PHONY: check
545570
check: test
546571

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Issue_Label 1 should not be deleted
2+
-
3+
id: 1
4+
issue_id: 1
5+
label_id: 1
6+
7+
# Issue_label 2 should be deleted
8+
-
9+
id: 2
10+
issue_id: 5
11+
label_id: 99
12+
13+
# Issue_Label 3 should not be deleted
14+
-
15+
id: 3
16+
issue_id: 2
17+
label_id: 1
18+
19+
# Issue_Label 4 should not be deleted
20+
-
21+
id: 4
22+
issue_id: 2
23+
label_id: 4
24+
25+
-
26+
id: 5
27+
issue_id: 2
28+
label_id: 87
29+
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
-
2+
id: 1
3+
repo_id: 1
4+
org_id: 0
5+
name: label1
6+
color: '#abcdef'
7+
num_issues: 2
8+
num_closed_issues: 0
9+
10+
-
11+
id: 2
12+
repo_id: 1
13+
org_id: 0
14+
name: label2
15+
color: '#000000'
16+
num_issues: 1
17+
num_closed_issues: 1
18+
-
19+
id: 3
20+
repo_id: 0
21+
org_id: 3
22+
name: orglabel3
23+
color: '#abcdef'
24+
num_issues: 0
25+
num_closed_issues: 0
26+
27+
-
28+
id: 4
29+
repo_id: 0
30+
org_id: 3
31+
name: orglabel4
32+
color: '#000000'
33+
num_issues: 1
34+
num_closed_issues: 0
35+
36+
-
37+
id: 5
38+
repo_id: 10
39+
org_id: 0
40+
name: pull-test-label
41+
color: '#000000'
42+
num_issues: 0
43+
num_closed_issues: 0

0 commit comments

Comments
 (0)