mirror of
https://github.com/mickael-kerjean/filestash.git
synced 2025-11-01 02:43:35 +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