test (fix): broken tests

This commit is contained in:
Mickael KERJEAN
2018-11-23 01:14:38 +11:00
parent cb4c98e871
commit bef1716a18
5 changed files with 88 additions and 43 deletions

View File

@ -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 push machines/nuage
- docker build --no-cache -t machines/nuage docker/prod
- 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

View File

@ -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)

View File

@ -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

View File

@ -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) {

View File

@ -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)
} }