17014: controller handles container requests
[arvados.git] / lib / controller / localdb / login_ldap_test.go
index 64ae58bce2681f792020b1855c2465d5ad226ae1..b8ba6b4676712efcad438bf9066195294b8702c3 100644 (file)
@@ -6,18 +6,19 @@ package localdb
 
 import (
        "context"
-       "database/sql"
        "encoding/json"
        "net"
        "net/http"
 
        "git.arvados.org/arvados.git/lib/config"
        "git.arvados.org/arvados.git/lib/controller/railsproxy"
+       "git.arvados.org/arvados.git/lib/ctrlctx"
        "git.arvados.org/arvados.git/sdk/go/arvados"
        "git.arvados.org/arvados.git/sdk/go/arvadostest"
        "git.arvados.org/arvados.git/sdk/go/auth"
        "git.arvados.org/arvados.git/sdk/go/ctxlog"
        "github.com/bradleypeabody/godap"
+       "github.com/jmoiron/sqlx"
        check "gopkg.in/check.v1"
 )
 
@@ -27,11 +28,11 @@ type LDAPSuite struct {
        cluster *arvados.Cluster
        ctrl    *ldapLoginController
        ldap    *godap.LDAPServer // fake ldap server that accepts auth goodusername/goodpassword
-       db      *sql.DB
+       db      *sqlx.DB
 
        // transaction context
        ctx      context.Context
-       rollback func()
+       rollback func() error
 }
 
 func (s *LDAPSuite) TearDownSuite(c *check.C) {
@@ -48,6 +49,7 @@ func (s *LDAPSuite) SetUpSuite(c *check.C) {
        c.Assert(err, check.IsNil)
 
        ln, err := net.Listen("tcp", "127.0.0.1:0")
+       c.Assert(err, check.IsNil)
        s.ldap = &godap.LDAPServer{
                Listener: ln,
                Handlers: []godap.LDAPRequestHandler{
@@ -62,7 +64,7 @@ func (s *LDAPSuite) SetUpSuite(c *check.C) {
                                                return []*godap.LDAPSimpleSearchResultEntry{}
                                        }
                                        return []*godap.LDAPSimpleSearchResultEntry{
-                                               &godap.LDAPSimpleSearchResultEntry{
+                                               {
                                                        DN: "cn=" + req.FilterValue + "," + req.BaseDN,
                                                        Attrs: map[string]interface{}{
                                                                "SN":   req.FilterValue,
@@ -88,18 +90,23 @@ func (s *LDAPSuite) SetUpSuite(c *check.C) {
        s.cluster.Login.LDAP.SearchBase = "dc=example,dc=com"
        c.Assert(err, check.IsNil)
        s.ctrl = &ldapLoginController{
-               Cluster:    s.cluster,
-               RailsProxy: railsproxy.NewConn(s.cluster),
+               Cluster: s.cluster,
+               Parent:  &Conn{railsProxy: railsproxy.NewConn(s.cluster)},
        }
-       s.db = testdb(c, s.cluster)
+       s.db = arvadostest.DB(c, s.cluster)
 }
 
 func (s *LDAPSuite) SetUpTest(c *check.C) {
-       s.ctx, s.rollback = testctx(c, s.db)
+       tx, err := s.db.Beginx()
+       c.Assert(err, check.IsNil)
+       s.ctx = ctrlctx.NewWithTransaction(context.Background(), tx)
+       s.rollback = tx.Rollback
 }
 
 func (s *LDAPSuite) TearDownTest(c *check.C) {
-       s.rollback()
+       if s.rollback != nil {
+               s.rollback()
+       }
 }
 
 func (s *LDAPSuite) TestLoginSuccess(c *check.C) {