X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5d5af52a33ec8b10a9af6afd50141db3923441ec..36f8e449321e4fa02d88fee1fded14aa8ff81723:/sdk/go/arvados/fs_site_test.go diff --git a/sdk/go/arvados/fs_site_test.go b/sdk/go/arvados/fs_site_test.go index a8c369f45b..80028dc598 100644 --- a/sdk/go/arvados/fs_site_test.go +++ b/sdk/go/arvados/fs_site_test.go @@ -6,6 +6,7 @@ package arvados import ( "net/http" + "os" "git.curoverse.com/arvados.git/sdk/go/arvadostest" check "gopkg.in/check.v1" @@ -15,12 +16,16 @@ var _ = check.Suite(&SiteFSSuite{}) type SiteFSSuite struct { client *Client - fs FileSystem + fs CustomFileSystem kc keepClient } func (s *SiteFSSuite) SetUpTest(c *check.C) { - s.client = NewClientFromEnv() + s.client = &Client{ + APIHost: os.Getenv("ARVADOS_API_HOST"), + AuthToken: arvadostest.ActiveToken, + Insecure: true, + } s.kc = &keepClientStub{ blocks: map[string][]byte{ "3858f62230ac3c915f300c664312c63f": []byte("foobar"), @@ -37,22 +42,58 @@ func (s *SiteFSSuite) TestByIDEmpty(c *check.C) { f, err := s.fs.Open("/by_id") c.Assert(err, check.IsNil) fis, err := f.Readdir(-1) + c.Check(err, check.IsNil) c.Check(len(fis), check.Equals, 0) } -func (s *SiteFSSuite) TestByUUID(c *check.C) { +func (s *SiteFSSuite) TestByUUIDAndPDH(c *check.C) { f, err := s.fs.Open("/by_id") c.Assert(err, check.IsNil) fis, err := f.Readdir(-1) c.Check(err, check.IsNil) c.Check(len(fis), check.Equals, 0) - f, err = s.fs.Open("/by_id/" + arvadostest.FooCollection) + err = s.fs.Mkdir("/by_id/"+arvadostest.FooCollection, 0755) + c.Check(err, check.Equals, os.ErrExist) + + f, err = s.fs.Open("/by_id/" + arvadostest.NonexistentCollection) + c.Assert(err, check.Equals, os.ErrNotExist) + + for _, path := range []string{ + arvadostest.FooCollection, + arvadostest.FooPdh, + arvadostest.AProjectUUID + "/" + arvadostest.FooCollectionName, + } { + f, err = s.fs.Open("/by_id/" + path) + c.Assert(err, check.IsNil) + fis, err = f.Readdir(-1) + var names []string + for _, fi := range fis { + names = append(names, fi.Name()) + } + c.Check(names, check.DeepEquals, []string{"foo"}) + } + + f, err = s.fs.Open("/by_id/" + arvadostest.AProjectUUID + "/A Subproject/baz_file") c.Assert(err, check.IsNil) fis, err = f.Readdir(-1) var names []string for _, fi := range fis { names = append(names, fi.Name()) } - c.Check(names, check.DeepEquals, []string{"foo"}) + c.Check(names, check.DeepEquals, []string{"baz"}) + + _, err = s.fs.OpenFile("/by_id/"+arvadostest.NonexistentCollection, os.O_RDWR|os.O_CREATE, 0755) + c.Check(err, check.Equals, ErrInvalidOperation) + err = s.fs.Rename("/by_id/"+arvadostest.FooCollection, "/by_id/beep") + c.Check(err, check.Equals, ErrInvalidArgument) + err = s.fs.Rename("/by_id/"+arvadostest.FooCollection+"/foo", "/by_id/beep") + c.Check(err, check.Equals, ErrInvalidArgument) + _, err = s.fs.Stat("/by_id/beep") + c.Check(err, check.Equals, os.ErrNotExist) + err = s.fs.Rename("/by_id/"+arvadostest.FooCollection+"/foo", "/by_id/"+arvadostest.FooCollection+"/bar") + c.Check(err, check.IsNil) + + err = s.fs.Rename("/by_id", "/beep") + c.Check(err, check.Equals, ErrInvalidArgument) }