mirror of
				https://github.com/mickael-kerjean/filestash.git
				synced 2025-10-31 18:16:00 +08:00 
			
		
		
		
	test (fix): broken tests
This commit is contained in:
		
							
								
								
									
										53
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								.drone.yml
									
									
									
									
									
								
							| @ -1,6 +1,41 @@ | |||||||
| pipeline: | pipeline: | ||||||
|   publish_docker: |   test: | ||||||
|     group: release |     image: golang | ||||||
|  |     environment: | ||||||
|  |       - GOPATH=/drone/ | ||||||
|  |       - CGO_LDFLAGS_ALLOW='-fopenmp' | ||||||
|  |     commands: | ||||||
|  |       - cd server | ||||||
|  |       - rm -rf plugin | ||||||
|  |       - go get -t ./... | ||||||
|  |       - go build | ||||||
|  |       - go test -v ./... | ||||||
|  |  | ||||||
|  |   build: | ||||||
|  |     image: docker | ||||||
|  |     volumes: | ||||||
|  |       - /var/run/docker.sock:/var/run/docker.sock | ||||||
|  |     when: | ||||||
|  |       branch: master | ||||||
|  |     commands: | ||||||
|  |       - docker pull alpine:latest | ||||||
|  |       - docker build --no-cache -t machines/nuage docker/prod | ||||||
|  |  | ||||||
|  |   integration: | ||||||
|  |     image: docker | ||||||
|  |     volumes: | ||||||
|  |       - /var/run/docker.sock:/var/run/docker.sock | ||||||
|  |     when: | ||||||
|  |       branch: master | ||||||
|  |     commands: | ||||||
|  |       - docker rm -f integration_filestash_app || true | ||||||
|  |       - docker rm -f integration_filestash_test || true | ||||||
|  |       - docker run --detach --name integration_filestash_app machines/nuage | ||||||
|  |       - sleep 10 | ||||||
|  |       - pwd | ||||||
|  |       - ls -lah | ||||||
|  |  | ||||||
|  |   release: | ||||||
|     image: docker |     image: docker | ||||||
|     secrets: [ docker_username, docker_password ] |     secrets: [ docker_username, docker_password ] | ||||||
|     volumes: |     volumes: | ||||||
| @ -9,6 +44,16 @@ pipeline: | |||||||
|       branch: master |       branch: master | ||||||
|     commands: |     commands: | ||||||
|       - echo $DOCKER_PASSWORD | docker login -u=$DOCKER_USERNAME --password-stdin |       - echo $DOCKER_PASSWORD | docker login -u=$DOCKER_USERNAME --password-stdin | ||||||
|       - docker pull alpine:latest |  | ||||||
|       - docker build --no-cache -t machines/nuage docker/prod |  | ||||||
|       - docker push machines/nuage |       - docker push machines/nuage | ||||||
|  |  | ||||||
|  |   deploy: | ||||||
|  |     image: appleboy/drone-ssh | ||||||
|  |     host: hal.kerjean.me | ||||||
|  |     secrets: [ ssh_username, ssh_password ] | ||||||
|  |     port: 22 | ||||||
|  |     script: | ||||||
|  |       - cd /app/filestash | ||||||
|  |       - docker-compose pull | ||||||
|  |       - docker-compose up -d | ||||||
|  |     when: | ||||||
|  |       branch: master | ||||||
| @ -20,14 +20,18 @@ func TestEncryptString(t *testing.T) { | |||||||
| } | } | ||||||
|  |  | ||||||
| func TestIDGeneration(t *testing.T) { | func TestIDGeneration(t *testing.T) { | ||||||
| 	d := make(map[string]string) | 	session := make(map[string]string) | ||||||
| 	d["foo"] = "bar" | 	session["foo"] = "bar" | ||||||
|  | 	app := &App{ | ||||||
|  | 		Session: session, | ||||||
|  | 		Config: NewConfig(), | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	id1 := GenerateID(d) | 	id1 := GenerateID(app) | ||||||
| 	d["user"] = "polo" | 	session["user"] = "polo" | ||||||
| 	id2 := GenerateID(d) | 	id2 := GenerateID(app) | ||||||
| 	d["doesn_t_matter"] = "N/A" | 	session["doesn_t_matter"] = "N/A" | ||||||
| 	id3 := GenerateID(d) | 	id3 := GenerateID(app) | ||||||
|  |  | ||||||
| 	assert.NotEqual(t, id1, id2) | 	assert.NotEqual(t, id1, id2) | ||||||
| 	assert.Equal(t, id2, id3) | 	assert.Equal(t, id2, id3) | ||||||
|  | |||||||
| @ -9,6 +9,7 @@ import ( | |||||||
| 	"net/http" | 	"net/http" | ||||||
|     "net/http/pprof" |     "net/http/pprof" | ||||||
| 	"os" | 	"os" | ||||||
|  | 	"runtime/debug" | ||||||
| 	"strconv" | 	"strconv" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @ -33,7 +34,10 @@ func Init(a *App) { | |||||||
| 		r.Handle("/debug/pprof/heap", pprof.Handler("heap")) | 		r.Handle("/debug/pprof/heap", pprof.Handler("heap")) | ||||||
| 		r.Handle("/debug/pprof/threadcreate", pprof.Handler("threadcreate")) | 		r.Handle("/debug/pprof/threadcreate", pprof.Handler("threadcreate")) | ||||||
| 		r.Handle("/debug/pprof/block", pprof.Handler("block")) | 		r.Handle("/debug/pprof/block", pprof.Handler("block")) | ||||||
| 		r.Handle("/debug/pprof/heap", pprof.Handler("heap")) | 		r.HandleFunc("/debug/free", func(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 			debug.FreeOSMemory() | ||||||
|  | 			w.Write([]byte("DONE")) | ||||||
|  | 		}) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// API | 	// API | ||||||
|  | |||||||
| @ -1,10 +1,8 @@ | |||||||
| package model | package model | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	//"fmt" |  | ||||||
| 	. "github.com/mickael-kerjean/nuage/server/common" | 	. "github.com/mickael-kerjean/nuage/server/common" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	//"os" |  | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"testing" | 	"testing" | ||||||
| ) | ) | ||||||
| @ -14,11 +12,6 @@ var app *App | |||||||
| func init() { | func init() { | ||||||
| 	app = &App{} | 	app = &App{} | ||||||
| 	app.Config = &Config{} | 	app.Config = &Config{} | ||||||
| 	app.Config.Initialise() |  | ||||||
| 	app.Config.General.Host = "http://test" |  | ||||||
| 	app.Config.OAuthProvider.Dropbox.ClientID = "" |  | ||||||
| 	app.Config.OAuthProvider.GoogleDrive.ClientID = "" |  | ||||||
| 	app.Config.OAuthProvider.GoogleDrive.ClientID = "" |  | ||||||
| } | } | ||||||
|  |  | ||||||
| // func TestWebdav(t *testing.T) { | // func TestWebdav(t *testing.T) { | ||||||
| @ -97,22 +90,18 @@ func init() { | |||||||
| // } | // } | ||||||
|  |  | ||||||
| // func TestS3(t *testing.T) { | // func TestS3(t *testing.T) { | ||||||
| // 	if os.Getenv("S3_ID") == "" || os.Getenv("S3_SECRET") == "" { |  | ||||||
| // 		fmt.Println("- skipped S3") |  | ||||||
| // 		return |  | ||||||
| // 	} |  | ||||||
| // 	b, err := NewBackend(&App{}, map[string]string{ | // 	b, err := NewBackend(&App{}, map[string]string{ | ||||||
| // 		"type":              "s3", | // 		"type":              "s3", | ||||||
| // 		"access_key_id":     os.Getenv("S3_ID"), | // 		"access_key_id":     "Q3AM3UQ867SPQQA43P2F", | ||||||
| // 		"secret_access_key": os.Getenv("S3_SECRET"), | // 		"secret_access_key": "zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG", | ||||||
| // 		"endpoint":          os.Getenv("S3_ENDPOINT"), | // 		"endpoint":          "https://play.minio.io:9000/", | ||||||
| // 	}) | // 	}) | ||||||
| // 	if err != nil { | // 	if err != nil { | ||||||
| // 		t.Errorf("Can't create S3 backend") | // 		t.Errorf("Can't create S3 backend") | ||||||
| // 	} | // 	} | ||||||
| // 	setup(t, b) | // 	setup(t, b) | ||||||
| // 	suite(t, b) | // 	// suite(t, b) | ||||||
| // 	tearDown(t, b) | // 	//tearDown(t, b) | ||||||
| // } | // } | ||||||
|  |  | ||||||
| // func TestDropbox(t *testing.T) { | // func TestDropbox(t *testing.T) { | ||||||
|  | |||||||
| @ -15,7 +15,10 @@ var shareObj = Share{ | |||||||
| 	CanRead: true, | 	CanRead: true, | ||||||
| 	CanManageOwn: true, | 	CanManageOwn: true, | ||||||
| 	CanShare: true, | 	CanShare: true, | ||||||
| 	Expire: NewInt64(1537759505787), | 	Expire: func() *int64{ | ||||||
|  | 		a := int64(1537759505787) | ||||||
|  | 		return &a | ||||||
|  | 	}(), | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @ -34,7 +37,7 @@ func TestShareMultipleUpsert(t *testing.T) { | |||||||
| 	err = ShareUpsert(&shareObj); | 	err = ShareUpsert(&shareObj); | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
|  |  | ||||||
| 	err = ShareGet(&shareObj) | 	_, err = ShareGet(shareObj.Id) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
| } | } | ||||||
|  |  | ||||||
| @ -44,7 +47,7 @@ func TestShareUpsertIsProperlyInserted(t *testing.T) { | |||||||
|  |  | ||||||
| 	var obj Share | 	var obj Share | ||||||
| 	obj.Id = "foo" | 	obj.Id = "foo" | ||||||
| 	err = ShareGet(&obj) | 	obj, err = ShareGet(obj.Id) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
| 	assert.NotNil(t, obj.Password) | 	assert.NotNil(t, obj.Password) | ||||||
| } | } | ||||||
| @ -55,7 +58,7 @@ func TestShareUpsertIsProperlyInserted(t *testing.T) { | |||||||
| func TestShareGetNonExisting(t *testing.T) { | func TestShareGetNonExisting(t *testing.T) { | ||||||
| 	var s Share = shareObj | 	var s Share = shareObj | ||||||
| 	s.Id = "nothing" | 	s.Id = "nothing" | ||||||
| 	err := ShareGet(&s); | 	_, err := ShareGet(s.Id); | ||||||
| 	assert.Error(t, err, "Shouldn't be able to get something that doesn't exist yet") | 	assert.Error(t, err, "Shouldn't be able to get something that doesn't exist yet") | ||||||
| } | } | ||||||
|  |  | ||||||
| @ -63,7 +66,7 @@ func TestShareGetExisting(t *testing.T) { | |||||||
| 	err := ShareUpsert(&shareObj); | 	err := ShareUpsert(&shareObj); | ||||||
| 	assert.NoError(t, err, "Upsert issue") | 	assert.NoError(t, err, "Upsert issue") | ||||||
|  |  | ||||||
| 	err = ShareGet(&shareObj); | 	_, err = ShareGet(shareObj.Id); | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
| } | } | ||||||
|  |  | ||||||
| @ -74,7 +77,7 @@ func TestShareGetExistingMakeSureDataIsOk(t *testing.T) { | |||||||
| 	var obj Share | 	var obj Share | ||||||
| 	obj.Id = "foo" | 	obj.Id = "foo" | ||||||
| 	obj.Backend = shareObj.Backend | 	obj.Backend = shareObj.Backend | ||||||
| 	err = ShareGet(&obj); | 	obj, err = ShareGet(obj.Id); | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
| 	assert.Equal(t, "foo", obj.Id) | 	assert.Equal(t, "foo", obj.Id) | ||||||
| 	assert.Equal(t, "/var/www/", obj.Path) | 	assert.Equal(t, "/var/www/", obj.Path) | ||||||
| @ -96,7 +99,7 @@ func TestShareListAll(t *testing.T) { | |||||||
| 	assert.NoError(t, err, "Upsert issue") | 	assert.NoError(t, err, "Upsert issue") | ||||||
|  |  | ||||||
| 	// Actual test | 	// Actual test | ||||||
| 	list, err := ShareList(&shareObj) | 	list, err := ShareList(shareObj.Backend, shareObj.Path) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
| 	assert.Len(t, list, 1) | 	assert.Len(t, list, 1) | ||||||
| 	assert.NotNil(t, list[0].Password) | 	assert.NotNil(t, list[0].Password) | ||||||
| @ -110,14 +113,14 @@ func TestShareDeleteShares(t *testing.T) { | |||||||
| 	// Initialise test | 	// Initialise test | ||||||
| 	err := ShareUpsert(&shareObj); | 	err := ShareUpsert(&shareObj); | ||||||
| 	assert.NoError(t, err, "Upsert issue") | 	assert.NoError(t, err, "Upsert issue") | ||||||
| 	err = ShareGet(&shareObj) | 	shareObj, err = ShareGet(shareObj.Id) | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
|  |  | ||||||
| 	// Actual Test | 	// Actual Test | ||||||
| 	err = ShareDelete(&shareObj); | 	err = ShareDelete(shareObj.Id); | ||||||
| 	assert.NoError(t, err) | 	assert.NoError(t, err) | ||||||
|  |  | ||||||
| 	err = ShareGet(&shareObj) | 	_, err = ShareGet(shareObj.Id) | ||||||
| 	assert.Error(t, err) | 	assert.Error(t, err) | ||||||
| } | } | ||||||
|  |  | ||||||
| @ -135,22 +138,22 @@ func TestShareVerifyEquivalence(t *testing.T) { | |||||||
| 		Key: p1.Key, | 		Key: p1.Key, | ||||||
| 		Id: "hash", | 		Id: "hash", | ||||||
| 	} | 	} | ||||||
| 	res := ShareProofAreEquivalent(p1, p2) | 	res := shareProofAreEquivalent(p1, p2) | ||||||
| 	assert.Equal(t, false, res) | 	assert.Equal(t, false, res) | ||||||
|  |  | ||||||
| 	p2.Id = Hash(p1.Key + "::" + p1.Value) | 	p2.Id = Hash(p1.Key + "::" + p1.Value) | ||||||
| 	res = ShareProofAreEquivalent(p1, p2) | 	res = shareProofAreEquivalent(p1, p2) | ||||||
| 	assert.Equal(t, true, res) | 	assert.Equal(t, true, res) | ||||||
|  |  | ||||||
| 	p2.Key = "email" | 	p2.Key = "email" | ||||||
| 	res = ShareProofAreEquivalent(p1, p2) | 	res = shareProofAreEquivalent(p1, p2) | ||||||
| 	assert.Equal(t, false, res) | 	assert.Equal(t, false, res) | ||||||
|  |  | ||||||
| 	p1.Key = "email" | 	p1.Key = "email" | ||||||
| 	p1.Value = "test@gmail.com,polo@gmail.com,jean@gmail.com" | 	p1.Value = "test@gmail.com,polo@gmail.com,jean@gmail.com" | ||||||
| 	p2.Key = "email" | 	p2.Key = "email" | ||||||
| 	p2.Id = Hash(p1.Key + "::" + "polo@gmail.com") | 	p2.Id = Hash(p1.Key + "::" + "polo@gmail.com") | ||||||
| 	res = ShareProofAreEquivalent(p1, p2) | 	res = shareProofAreEquivalent(p1, p2) | ||||||
| 	assert.Equal(t, true, res) | 	assert.Equal(t, true, res) | ||||||
| 	 | 	 | ||||||
| } | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Mickael KERJEAN
					Mickael KERJEAN