18896: add locking. Also handle v1 tokens shorter than 5 characters.
[arvados.git] / lib / controller / rpc / conn_test.go
index 7a5403e930edb3ec197191d6319487a7ae2f5eda..eee8db9ac830588754956afc62806b757d72b89a 100644 (file)
@@ -10,9 +10,9 @@ import (
        "os"
        "testing"
 
-       "git.curoverse.com/arvados.git/sdk/go/arvados"
-       "git.curoverse.com/arvados.git/sdk/go/arvadostest"
-       "git.curoverse.com/arvados.git/sdk/go/ctxlog"
+       "git.arvados.org/arvados.git/sdk/go/arvados"
+       "git.arvados.org/arvados.git/sdk/go/arvadostest"
+       "git.arvados.org/arvados.git/sdk/go/ctxlog"
        "github.com/sirupsen/logrus"
        check "gopkg.in/check.v1"
 )
@@ -24,7 +24,11 @@ func Test(t *testing.T) {
 
 var _ = check.Suite(&RPCSuite{})
 
-const contextKeyTestTokens = "testTokens"
+type key int
+
+const (
+       contextKeyTestTokens key = iota
+)
 
 type RPCSuite struct {
        log  logrus.FieldLogger
@@ -46,9 +50,18 @@ func (s *RPCSuite) TestLogin(c *check.C) {
        opts := arvados.LoginOptions{
                ReturnTo: "https://foo.example.com/bar",
        }
-       resp, err := s.conn.Login(s.ctx, opts)
+       _, err := s.conn.Login(s.ctx, opts)
+       c.Check(err.(*arvados.TransactionError).StatusCode, check.Equals, 404)
+}
+
+func (s *RPCSuite) TestLogout(c *check.C) {
+       s.ctx = context.Background()
+       opts := arvados.LogoutOptions{
+               ReturnTo: "https://foo.example.com/bar",
+       }
+       resp, err := s.conn.Logout(s.ctx, opts)
        c.Check(err, check.IsNil)
-       c.Check(resp.RedirectLocation, check.Equals, "/auth/joshid?return_to="+url.QueryEscape(","+opts.ReturnTo))
+       c.Check(resp.RedirectLocation, check.Equals, opts.ReturnTo)
 }
 
 func (s *RPCSuite) TestCollectionCreate(c *check.C) {
@@ -71,10 +84,12 @@ func (s *RPCSuite) TestSpecimenCRUD(c *check.C) {
        c.Check(sp.Properties["foo"], check.Equals, "bar")
 
        spGet, err := s.conn.SpecimenGet(s.ctx, arvados.GetOptions{UUID: sp.UUID})
+       c.Check(err, check.IsNil)
        c.Check(spGet.UUID, check.Equals, sp.UUID)
        c.Check(spGet.Properties["foo"], check.Equals, "bar")
 
        spList, err := s.conn.SpecimenList(s.ctx, arvados.ListOptions{Limit: -1, Filters: []arvados.Filter{{"uuid", "=", sp.UUID}}})
+       c.Check(err, check.IsNil)
        c.Check(spList.ItemsAvailable, check.Equals, 1)
        c.Assert(spList.Items, check.HasLen, 1)
        c.Check(spList.Items[0].UUID, check.Equals, sp.UUID)
@@ -82,9 +97,11 @@ func (s *RPCSuite) TestSpecimenCRUD(c *check.C) {
 
        anonCtx := context.WithValue(context.Background(), contextKeyTestTokens, []string{arvadostest.AnonymousToken})
        spList, err = s.conn.SpecimenList(anonCtx, arvados.ListOptions{Limit: -1, Filters: []arvados.Filter{{"uuid", "=", sp.UUID}}})
+       c.Check(err, check.IsNil)
        c.Check(spList.ItemsAvailable, check.Equals, 0)
        c.Check(spList.Items, check.HasLen, 0)
 
        spDel, err := s.conn.SpecimenDelete(s.ctx, arvados.DeleteOptions{UUID: sp.UUID})
+       c.Check(err, check.IsNil)
        c.Check(spDel.UUID, check.Equals, sp.UUID)
 }