X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3cf6c6d8dcd3616d0075f9af1732d5ed4231b861..6e9fcde0422b33d081e2985975e3104eb2434957:/services/keep-web/cadaver_test.go?ds=inline diff --git a/services/keep-web/cadaver_test.go b/services/keep-web/cadaver_test.go index 0fc6e47ba3..44d0b0ffef 100644 --- a/services/keep-web/cadaver_test.go +++ b/services/keep-web/cadaver_test.go @@ -53,6 +53,8 @@ func (s *IntegrationSuite) TestCadaverUserProject(c *check.C) { } func (s *IntegrationSuite) testCadaver(c *check.C, password string, pathFunc func(arvados.Collection) (string, string, string), skip func(string) bool) { + s.testServer.Config.AnonymousTokens = []string{arvadostest.AnonymousToken} + testdata := []byte("the human tragedy consists in the necessity of living with the consequences of actions performed under the pressure of compulsions we do not understand") tempdir, err := ioutil.TempDir("", "keep-web-test-") @@ -72,7 +74,7 @@ func (s *IntegrationSuite) testCadaver(c *check.C, password string, pathFunc fun var newCollection arvados.Collection arv := arvados.NewClientFromEnv() arv.AuthToken = arvadostest.ActiveToken - err = arv.RequestAndDecode(&newCollection, "POST", "/arvados/v1/collections", bytes.NewBufferString(url.Values{"collection": {"{}"}}.Encode()), nil) + err = arv.RequestAndDecode(&newCollection, "POST", "arvados/v1/collections", bytes.NewBufferString(url.Values{"collection": {"{}"}}.Encode()), nil) c.Assert(err, check.IsNil) readPath, writePath, pdhPath := pathFunc(newCollection) @@ -143,6 +145,16 @@ func (s *IntegrationSuite) testCadaver(c *check.C, password string, pathFunc fun cmd: "move testfile newdir0/\n", match: `(?ms).*Moving .* failed.*`, }, + { + path: writePath, + cmd: "lock newdir0/testfile\n", + match: `(?ms).*Locking .* succeeded.*`, + }, + { + path: writePath, + cmd: "unlock newdir0/testfile\nasdf\n", + match: `(?ms).*Unlocking .* succeeded.*`, + }, { path: writePath, cmd: "ls\n", @@ -158,6 +170,16 @@ func (s *IntegrationSuite) testCadaver(c *check.C, password string, pathFunc fun cmd: "mkcol newdir1\n", match: `(?ms).*Creating .* succeeded.*`, }, + { + path: writePath, + cmd: "move newdir1/ newdir1x/\n", + match: `(?ms).*Moving .* succeeded.*`, + }, + { + path: writePath, + cmd: "move newdir1x newdir1\n", + match: `(?ms).*Moving .* succeeded.*`, + }, { path: writePath, cmd: "move newdir0/testfile newdir1/\n", @@ -241,6 +263,11 @@ func (s *IntegrationSuite) testCadaver(c *check.C, password string, pathFunc fun cmd: "delete foo\n", match: `(?ms).*Deleting .* failed:.*405 Method Not Allowed.*`, }, + { + path: pdhPath, + cmd: "lock foo\n", + match: `(?ms).*Locking .* failed:.*405 Method Not Allowed.*`, + }, } { c.Logf("%s %+v", "http://"+s.testServer.Addr, trial) if skip != nil && skip(trial.path) { @@ -265,7 +292,28 @@ func (s *IntegrationSuite) testCadaver(c *check.C, password string, pathFunc fun } } +func (s *IntegrationSuite) TestCadaverByID(c *check.C) { + for _, path := range []string{"/by_id", "/by_id/"} { + stdout := s.runCadaver(c, arvadostest.ActiveToken, path, "ls") + c.Check(stdout, check.Matches, `(?ms).*collection is empty.*`) + } + for _, path := range []string{ + "/by_id/" + arvadostest.FooPdh, + "/by_id/" + arvadostest.FooPdh + "/", + "/by_id/" + arvadostest.FooCollection, + "/by_id/" + arvadostest.FooCollection + "/", + } { + stdout := s.runCadaver(c, arvadostest.ActiveToken, path, "ls") + c.Check(stdout, check.Matches, `(?ms).*\s+foo\s+3 .*`) + } +} + func (s *IntegrationSuite) TestCadaverUsersDir(c *check.C) { + for _, path := range []string{"/"} { + stdout := s.runCadaver(c, arvadostest.ActiveToken, path, "ls") + c.Check(stdout, check.Matches, `(?ms).*Coll:\s+by_id\s+0 .*`) + c.Check(stdout, check.Matches, `(?ms).*Coll:\s+users\s+0 .*`) + } for _, path := range []string{"/users", "/users/"} { stdout := s.runCadaver(c, arvadostest.ActiveToken, path, "ls") c.Check(stdout, check.Matches, `(?ms).*Coll:\s+active.*`)