mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	MySQL, Postgres integration tests in drone (#1638)
* MySQL, Postgres integration tests in drone * Fix .drone.yml * sign drone * resign drone
This commit is contained in:
		@@ -44,7 +44,7 @@ pipeline:
 | 
				
			|||||||
      TAGS: bindata
 | 
					      TAGS: bindata
 | 
				
			||||||
      GOPATH: /srv/app
 | 
					      GOPATH: /srv/app
 | 
				
			||||||
    commands:
 | 
					    commands:
 | 
				
			||||||
      - echo make test-mysql # Not ready yet
 | 
					      - make test-mysql
 | 
				
			||||||
    when:
 | 
					    when:
 | 
				
			||||||
      event: [ push, tag, pull_request ]
 | 
					      event: [ push, tag, pull_request ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -55,7 +55,7 @@ pipeline:
 | 
				
			|||||||
      TAGS: bindata
 | 
					      TAGS: bindata
 | 
				
			||||||
      GOPATH: /srv/app
 | 
					      GOPATH: /srv/app
 | 
				
			||||||
    commands:
 | 
					    commands:
 | 
				
			||||||
      - echo make test-pqsql # Not ready yet
 | 
					      - make test-pgsql
 | 
				
			||||||
    when:
 | 
					    when:
 | 
				
			||||||
      event: [ push, tag, pull_request ]
 | 
					      event: [ push, tag, pull_request ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
eyJhbGciOiJIUzI1NiJ9.d29ya3NwYWNlOgogIGJhc2U6IC9zcnYvYXBwCiAgcGF0aDogc3JjL2NvZGUuZ2l0ZWEuaW8vZ2l0ZWEKCnBpcGVsaW5lOgogIGNsb25lOgogICAgaW1hZ2U6IHBsdWdpbnMvZ2l0CiAgICBkZXB0aDogNTAKICAgIHRhZ3M6IHRydWUKCiAgdGVzdDoKICAgIGltYWdlOiB3ZWJoaXBwaWUvZ29sYW5nOmVkZ2UKICAgIHB1bGw6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICBUQUdTOiBiaW5kYXRhIHNxbGl0ZQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBhcGsgLVUgYWRkIG9wZW5zc2gtY2xpZW50CiAgICAgIC0gbWFrZSBjbGVhbgogICAgICAtIG1ha2UgZ2VuZXJhdGUKICAgICAgLSBtYWtlIHZldAogICAgICAtIG1ha2UgbGludAogICAgICAtIG1ha2UgdGVzdC12ZW5kb3IKICAgICAgLSBtYWtlIHRlc3QKICAgICAgLSBtYWtlIGJ1aWxkCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3Qtc3FsaXRlOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LXNxbGl0ZQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICB0ZXN0LW15c3FsOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gZWNobyBtYWtlIHRlc3QtbXlzcWwgIyBOb3QgcmVhZHkgeWV0CiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3QtcGdzcWw6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBlY2hvIG1ha2UgdGVzdC1wcXNxbCAjIE5vdCByZWFkeSB5ZXQKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgc3RhdGljOgogICAgaW1hZ2U6IGthcmFsYWJlL3hnby1sYXRlc3Q6bGF0ZXN0CiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YSBzcWxpdGUKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSByZWxlYXNlCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIGNvdmVyYWdlOgogICAgaW1hZ2U6IHBsdWdpbnMvY292ZXJhZ2UKICAgIHNlcnZlcjogaHR0cHM6Ly9jb3ZlcmFnZS5naXRlYS5pbwogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IGdpdGVhL2dpdGVhCiAgICB0YWdzOiBbICcke0RST05FX1RBRyMjdn0nIF0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogZ2l0ZWEvZ2l0ZWEKICAgIHRhZ3M6IFsgJyR7RFJPTkVfQlJBTkNIIyNyZWxlYXNlL3Z9JyBdCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBbIHJlbGVhc2UvKiBdCgogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogZ2l0ZWEvZ2l0ZWEKICAgIHRhZ3M6IFsgJ2xhdGVzdCcgXQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyBtYXN0ZXIgXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHN0cmlwX3ByZWZpeDogZGlzdC9yZWxlYXNlLwogICAgc291cmNlOiBkaXN0L3JlbGVhc2UvKgogICAgdGFyZ2V0OiAvZ2l0ZWEvJHtEUk9ORV9UQUcjI3Z9CiAgICB3aGVuOgogICAgICBldmVudDogWyB0YWcgXQogICAgICBicmFuY2g6IFsgcmVmcy90YWdzLyogXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHN0cmlwX3ByZWZpeDogZGlzdC9yZWxlYXNlLwogICAgc291cmNlOiBkaXN0L3JlbGVhc2UvKgogICAgdGFyZ2V0OiAvZ2l0ZWEvJHtEUk9ORV9CUkFOQ0gjI3JlbGVhc2Uvdn0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2ggXQogICAgICBicmFuY2g6IFsgcmVsZWFzZS8qIF0KCiAgcmVsZWFzZToKICAgIGltYWdlOiBwbHVnaW5zL3MzCiAgICBwYXRoX3N0eWxlOiB0cnVlCiAgICBzdHJpcF9wcmVmaXg6IGRpc3QvcmVsZWFzZS8KICAgIHNvdXJjZTogZGlzdC9yZWxlYXNlLyoKICAgIHRhcmdldDogL2dpdGVhL21hc3RlcgogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyBtYXN0ZXIgXQoKICBnaXRodWI6CiAgICBpbWFnZTogcGx1Z2lucy9naXRodWItcmVsZWFzZQogICAgZmlsZXM6CiAgICAgIC0gZGlzdC9yZWxlYXNlLyoKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogIGdpdHRlcjoKICAgIGltYWdlOiBwbHVnaW5zL2dpdHRlcgoKc2VydmljZXM6CiAgbXlzcWw6CiAgICBpbWFnZTogbXlzcWw6NS43CiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNWVNRTF9EQVRBQkFTRT10ZXN0CiAgICAgIC0gTVlTUUxfQUxMT1dfRU1QVFlfUEFTU1dPUkQ9eWVzCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHBnc3FsOgogICAgaW1hZ2U6IHBvc3RncmVzOjkuNQogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUE9TVEdSRVNfREI9dGVzdAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQo.4VRK2oB1YakJzBdVo8f_k2btz9INR1Fi7gjDhIR_-xI
 | 
					eyJhbGciOiJIUzI1NiJ9.d29ya3NwYWNlOgogIGJhc2U6IC9zcnYvYXBwCiAgcGF0aDogc3JjL2NvZGUuZ2l0ZWEuaW8vZ2l0ZWEKCnBpcGVsaW5lOgogIGNsb25lOgogICAgaW1hZ2U6IHBsdWdpbnMvZ2l0CiAgICBkZXB0aDogNTAKICAgIHRhZ3M6IHRydWUKCiAgdGVzdDoKICAgIGltYWdlOiB3ZWJoaXBwaWUvZ29sYW5nOmVkZ2UKICAgIHB1bGw6IHRydWUKICAgIGVudmlyb25tZW50OgogICAgICBUQUdTOiBiaW5kYXRhIHNxbGl0ZQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBhcGsgLVUgYWRkIG9wZW5zc2gtY2xpZW50CiAgICAgIC0gbWFrZSBjbGVhbgogICAgICAtIG1ha2UgZ2VuZXJhdGUKICAgICAgLSBtYWtlIHZldAogICAgICAtIG1ha2UgbGludAogICAgICAtIG1ha2UgdGVzdC12ZW5kb3IKICAgICAgLSBtYWtlIHRlc3QKICAgICAgLSBtYWtlIGJ1aWxkCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3Qtc3FsaXRlOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LXNxbGl0ZQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICB0ZXN0LW15c3FsOgogICAgaW1hZ2U6IHdlYmhpcHBpZS9nb2xhbmc6ZWRnZQogICAgcHVsbDogdHJ1ZQogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRBR1M6IGJpbmRhdGEKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSB0ZXN0LW15c3FsCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHRlc3QtcGdzcWw6CiAgICBpbWFnZTogd2ViaGlwcGllL2dvbGFuZzplZGdlCiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YQogICAgICBHT1BBVEg6IC9zcnYvYXBwCiAgICBjb21tYW5kczoKICAgICAgLSBtYWtlIHRlc3QtcGdzcWwKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2gsIHRhZywgcHVsbF9yZXF1ZXN0IF0KCiAgc3RhdGljOgogICAgaW1hZ2U6IGthcmFsYWJlL3hnby1sYXRlc3Q6bGF0ZXN0CiAgICBwdWxsOiB0cnVlCiAgICBlbnZpcm9ubWVudDoKICAgICAgVEFHUzogYmluZGF0YSBzcWxpdGUKICAgICAgR09QQVRIOiAvc3J2L2FwcAogICAgY29tbWFuZHM6CiAgICAgIC0gbWFrZSByZWxlYXNlCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIGNvdmVyYWdlOgogICAgaW1hZ2U6IHBsdWdpbnMvY292ZXJhZ2UKICAgIHNlcnZlcjogaHR0cHM6Ly9jb3ZlcmFnZS5naXRlYS5pbwogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQoKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IGdpdGVhL2dpdGVhCiAgICB0YWdzOiBbICcke0RST05FX1RBRyMjdn0nIF0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogZ2l0ZWEvZ2l0ZWEKICAgIHRhZ3M6IFsgJyR7RFJPTkVfQlJBTkNIIyNyZWxlYXNlL3Z9JyBdCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoIF0KICAgICAgYnJhbmNoOiBbIHJlbGVhc2UvKiBdCgogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogZ2l0ZWEvZ2l0ZWEKICAgIHRhZ3M6IFsgJ2xhdGVzdCcgXQogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyBtYXN0ZXIgXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHN0cmlwX3ByZWZpeDogZGlzdC9yZWxlYXNlLwogICAgc291cmNlOiBkaXN0L3JlbGVhc2UvKgogICAgdGFyZ2V0OiAvZ2l0ZWEvJHtEUk9ORV9UQUcjI3Z9CiAgICB3aGVuOgogICAgICBldmVudDogWyB0YWcgXQogICAgICBicmFuY2g6IFsgcmVmcy90YWdzLyogXQoKICByZWxlYXNlOgogICAgaW1hZ2U6IHBsdWdpbnMvczMKICAgIHBhdGhfc3R5bGU6IHRydWUKICAgIHN0cmlwX3ByZWZpeDogZGlzdC9yZWxlYXNlLwogICAgc291cmNlOiBkaXN0L3JlbGVhc2UvKgogICAgdGFyZ2V0OiAvZ2l0ZWEvJHtEUk9ORV9CUkFOQ0gjI3JlbGVhc2Uvdn0KICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHB1c2ggXQogICAgICBicmFuY2g6IFsgcmVsZWFzZS8qIF0KCiAgcmVsZWFzZToKICAgIGltYWdlOiBwbHVnaW5zL3MzCiAgICBwYXRoX3N0eWxlOiB0cnVlCiAgICBzdHJpcF9wcmVmaXg6IGRpc3QvcmVsZWFzZS8KICAgIHNvdXJjZTogZGlzdC9yZWxlYXNlLyoKICAgIHRhcmdldDogL2dpdGVhL21hc3RlcgogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCBdCiAgICAgIGJyYW5jaDogWyBtYXN0ZXIgXQoKICBnaXRodWI6CiAgICBpbWFnZTogcGx1Z2lucy9naXRodWItcmVsZWFzZQogICAgZmlsZXM6CiAgICAgIC0gZGlzdC9yZWxlYXNlLyoKICAgIHdoZW46CiAgICAgIGV2ZW50OiBbIHRhZyBdCiAgICAgIGJyYW5jaDogWyByZWZzL3RhZ3MvKiBdCgogIGdpdHRlcjoKICAgIGltYWdlOiBwbHVnaW5zL2dpdHRlcgoKc2VydmljZXM6CiAgbXlzcWw6CiAgICBpbWFnZTogbXlzcWw6NS43CiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNWVNRTF9EQVRBQkFTRT10ZXN0CiAgICAgIC0gTVlTUUxfQUxMT1dfRU1QVFlfUEFTU1dPUkQ9eWVzCiAgICB3aGVuOgogICAgICBldmVudDogWyBwdXNoLCB0YWcsIHB1bGxfcmVxdWVzdCBdCgogIHBnc3FsOgogICAgaW1hZ2U6IHBvc3RncmVzOjkuNQogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gUE9TVEdSRVNfREI9dGVzdAogICAgd2hlbjoKICAgICAgZXZlbnQ6IFsgcHVzaCwgdGFnLCBwdWxsX3JlcXVlc3QgXQo._gmaEu0hvh55_gmu1f06G5jdsDGIelMW0whjHfe7ovw
 | 
				
			||||||
							
								
								
									
										1
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
									
									
									
									
								
							@@ -90,7 +90,6 @@ test-sqlite: integrations.test
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
.PHONY: test-mysql
 | 
					.PHONY: test-mysql
 | 
				
			||||||
test-mysql: integrations.test
 | 
					test-mysql: integrations.test
 | 
				
			||||||
	echo "CREATE DATABASE IF NOT EXISTS testgitea" | mysql -u root
 | 
					 | 
				
			||||||
	GITEA_CONF=integrations/mysql.ini ./integrations.test
 | 
						GITEA_CONF=integrations/mysql.ini ./integrations.test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: test-pgsql
 | 
					.PHONY: test-pgsql
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,8 +6,10 @@ package integrations
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"bytes"
 | 
						"bytes"
 | 
				
			||||||
 | 
						"database/sql"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io"
 | 
						"io"
 | 
				
			||||||
 | 
						"log"
 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
@@ -26,13 +28,7 @@ import (
 | 
				
			|||||||
var mac *macaron.Macaron
 | 
					var mac *macaron.Macaron
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestMain(m *testing.M) {
 | 
					func TestMain(m *testing.M) {
 | 
				
			||||||
	appIniPath := os.Getenv("GITEA_CONF")
 | 
						initIntegrationTest()
 | 
				
			||||||
	if appIniPath == "" {
 | 
					 | 
				
			||||||
		fmt.Println("Environment variable $GITEA_CONF not set")
 | 
					 | 
				
			||||||
		os.Exit(1)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	setting.CustomConf = appIniPath
 | 
					 | 
				
			||||||
	routers.GlobalInit()
 | 
					 | 
				
			||||||
	mac = routes.NewMacaron()
 | 
						mac = routes.NewMacaron()
 | 
				
			||||||
	routes.RegisterRoutes(mac)
 | 
						routes.RegisterRoutes(mac)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -59,6 +55,48 @@ func TestMain(m *testing.M) {
 | 
				
			|||||||
	os.Exit(m.Run())
 | 
						os.Exit(m.Run())
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func initIntegrationTest() {
 | 
				
			||||||
 | 
						if setting.CustomConf = os.Getenv("GITEA_CONF"); setting.CustomConf == "" {
 | 
				
			||||||
 | 
							fmt.Println("Environment variable $GITEA_CONF not set")
 | 
				
			||||||
 | 
							os.Exit(1)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						setting.NewContext()
 | 
				
			||||||
 | 
						models.LoadConfigs()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						switch {
 | 
				
			||||||
 | 
						case setting.UseMySQL:
 | 
				
			||||||
 | 
							db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/",
 | 
				
			||||||
 | 
								models.DbCfg.User, models.DbCfg.Passwd, models.DbCfg.Host))
 | 
				
			||||||
 | 
							defer db.Close()
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatalf("sql.Open: %v", err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if _, err = db.Exec("CREATE DATABASE IF NOT EXISTS testgitea"); err != nil {
 | 
				
			||||||
 | 
								log.Fatalf("db.Exec: %v", err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						case setting.UsePostgreSQL:
 | 
				
			||||||
 | 
							db, err := sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/?sslmode=%s",
 | 
				
			||||||
 | 
								models.DbCfg.User, models.DbCfg.Passwd, models.DbCfg.Host, models.DbCfg.SSLMode))
 | 
				
			||||||
 | 
							defer db.Close()
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatalf("sql.Open: %v", err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							rows, err := db.Query(fmt.Sprintf("SELECT 1 FROM pg_database WHERE datname = '%s'",
 | 
				
			||||||
 | 
								models.DbCfg.Name))
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatalf("db.Query: %v", err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if rows.Next() {
 | 
				
			||||||
 | 
								break // database already exists
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if _, err = db.Exec("CREATE DATABASE testgitea"); err != nil {
 | 
				
			||||||
 | 
								log.Fatalf("db.Exec: %v", err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						routers.GlobalInit()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func prepareTestEnv(t *testing.T) {
 | 
					func prepareTestEnv(t *testing.T) {
 | 
				
			||||||
	assert.NoError(t, models.LoadFixtures())
 | 
						assert.NoError(t, models.LoadFixtures())
 | 
				
			||||||
	assert.NoError(t, os.RemoveAll("integrations/gitea-integration"))
 | 
						assert.NoError(t, os.RemoveAll("integrations/gitea-integration"))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,14 +42,14 @@ ENABLE_FEDERATED_AVATAR = false
 | 
				
			|||||||
PROVIDER = file
 | 
					PROVIDER = file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[log]
 | 
					[log]
 | 
				
			||||||
MODE = console,file
 | 
					MODE      = console,file
 | 
				
			||||||
 | 
					ROOT_PATH = mysql-log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[log.console]
 | 
					[log.console]
 | 
				
			||||||
LEVEL = Warn
 | 
					LEVEL = Warn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[log.file]
 | 
					[log.file]
 | 
				
			||||||
LEVEL     = Info
 | 
					LEVEL = Info
 | 
				
			||||||
ROOT_PATH = log
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[security]
 | 
					[security]
 | 
				
			||||||
INSTALL_LOCK = true
 | 
					INSTALL_LOCK = true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,13 +43,13 @@ PROVIDER = file
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[log]
 | 
					[log]
 | 
				
			||||||
MODE = console,file
 | 
					MODE = console,file
 | 
				
			||||||
 | 
					ROOT_PATH = pgsql-log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[log.console]
 | 
					[log.console]
 | 
				
			||||||
LEVEL = Warn
 | 
					LEVEL = Warn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[log.file]
 | 
					[log.file]
 | 
				
			||||||
LEVEL     = Info
 | 
					LEVEL     = Info
 | 
				
			||||||
ROOT_PATH = log
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[security]
 | 
					[security]
 | 
				
			||||||
INSTALL_LOCK = true
 | 
					INSTALL_LOCK = true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ import (
 | 
				
			|||||||
func TestIncreaseDownloadCount(t *testing.T) {
 | 
					func TestIncreaseDownloadCount(t *testing.T) {
 | 
				
			||||||
	assert.NoError(t, PrepareTestDatabase())
 | 
						assert.NoError(t, PrepareTestDatabase())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	attachment, err := GetAttachmentByUUID("1234567890")
 | 
						attachment, err := GetAttachmentByUUID("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11")
 | 
				
			||||||
	assert.NoError(t, err)
 | 
						assert.NoError(t, err)
 | 
				
			||||||
	assert.Equal(t, int64(0), attachment.DownloadCount)
 | 
						assert.Equal(t, int64(0), attachment.DownloadCount)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -21,7 +21,7 @@ func TestIncreaseDownloadCount(t *testing.T) {
 | 
				
			|||||||
	err = attachment.IncreaseDownloadCount()
 | 
						err = attachment.IncreaseDownloadCount()
 | 
				
			||||||
	assert.NoError(t, err)
 | 
						assert.NoError(t, err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	attachment, err = GetAttachmentByUUID("1234567890")
 | 
						attachment, err = GetAttachmentByUUID("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11")
 | 
				
			||||||
	assert.NoError(t, err)
 | 
						assert.NoError(t, err)
 | 
				
			||||||
	assert.Equal(t, int64(1), attachment.DownloadCount)
 | 
						assert.Equal(t, int64(1), attachment.DownloadCount)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -53,7 +53,7 @@ func TestDeleteAttachments(t *testing.T) {
 | 
				
			|||||||
	err = DeleteAttachment(&Attachment{ID: 8}, false)
 | 
						err = DeleteAttachment(&Attachment{ID: 8}, false)
 | 
				
			||||||
	assert.NoError(t, err)
 | 
						assert.NoError(t, err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	attachment, err := GetAttachmentByUUID("test-12345")
 | 
						attachment, err := GetAttachmentByUUID("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a18")
 | 
				
			||||||
	assert.Error(t, err)
 | 
						assert.Error(t, err)
 | 
				
			||||||
	assert.True(t, IsErrAttachmentNotExist(err))
 | 
						assert.True(t, IsErrAttachmentNotExist(err))
 | 
				
			||||||
	assert.Nil(t, attachment)
 | 
						assert.Nil(t, attachment)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
-
 | 
					-
 | 
				
			||||||
  id: 1
 | 
					  id: 1
 | 
				
			||||||
  uuid: 1234567890
 | 
					  uuid: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
 | 
				
			||||||
  issue_id: 1
 | 
					  issue_id: 1
 | 
				
			||||||
  comment_id: 0
 | 
					  comment_id: 0
 | 
				
			||||||
  name: attach1
 | 
					  name: attach1
 | 
				
			||||||
@@ -9,7 +9,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 2
 | 
					  id: 2
 | 
				
			||||||
  uuid: 1122334455
 | 
					  uuid: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a12
 | 
				
			||||||
  issue_id: 1
 | 
					  issue_id: 1
 | 
				
			||||||
  comment_id: 0
 | 
					  comment_id: 0
 | 
				
			||||||
  name: attach2
 | 
					  name: attach2
 | 
				
			||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 3
 | 
					  id: 3
 | 
				
			||||||
  uuid: comment-id-1
 | 
					  uuid: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a13
 | 
				
			||||||
  issue_id: 2
 | 
					  issue_id: 2
 | 
				
			||||||
  comment_id: 1
 | 
					  comment_id: 1
 | 
				
			||||||
  name: attach1
 | 
					  name: attach1
 | 
				
			||||||
@@ -27,7 +27,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 4
 | 
					  id: 4
 | 
				
			||||||
  uuid: comment-id-2
 | 
					  uuid: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14
 | 
				
			||||||
  issue_id: 3
 | 
					  issue_id: 3
 | 
				
			||||||
  comment_id: 1
 | 
					  comment_id: 1
 | 
				
			||||||
  name: attach2
 | 
					  name: attach2
 | 
				
			||||||
@@ -36,7 +36,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 5
 | 
					  id: 5
 | 
				
			||||||
  uuid: comment-id-3
 | 
					  uuid: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a15
 | 
				
			||||||
  issue_id: 4
 | 
					  issue_id: 4
 | 
				
			||||||
  comment_id: 0
 | 
					  comment_id: 0
 | 
				
			||||||
  name: attach1
 | 
					  name: attach1
 | 
				
			||||||
@@ -45,7 +45,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 6
 | 
					  id: 6
 | 
				
			||||||
  uuid: comment-id-4
 | 
					  uuid: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a16
 | 
				
			||||||
  issue_id: 5
 | 
					  issue_id: 5
 | 
				
			||||||
  comment_id: 2
 | 
					  comment_id: 2
 | 
				
			||||||
  name: attach1
 | 
					  name: attach1
 | 
				
			||||||
@@ -54,7 +54,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 7
 | 
					  id: 7
 | 
				
			||||||
  uuid: comment-id-5
 | 
					  uuid: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a17
 | 
				
			||||||
  issue_id: 5
 | 
					  issue_id: 5
 | 
				
			||||||
  comment_id: 2
 | 
					  comment_id: 2
 | 
				
			||||||
  name: attach1
 | 
					  name: attach1
 | 
				
			||||||
@@ -63,7 +63,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
-
 | 
					-
 | 
				
			||||||
  id: 8
 | 
					  id: 8
 | 
				
			||||||
  uuid: test-12345
 | 
					  uuid: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a18
 | 
				
			||||||
  issue_id: 6
 | 
					  issue_id: 6
 | 
				
			||||||
  comment_id: 0
 | 
					  comment_id: 0
 | 
				
			||||||
  name: attach1
 | 
					  name: attach1
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@
 | 
				
			|||||||
-
 | 
					-
 | 
				
			||||||
  id: 2
 | 
					  id: 2
 | 
				
			||||||
  type: 0 # gitea pull request
 | 
					  type: 0 # gitea pull request
 | 
				
			||||||
  status: 1 # checking
 | 
					  status: 2 # mergable
 | 
				
			||||||
  issue_id: 3
 | 
					  issue_id: 3
 | 
				
			||||||
  index: 3
 | 
					  index: 3
 | 
				
			||||||
  head_repo_id: 1
 | 
					  head_repo_id: 1
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user