// pipelineDatabase connects to a Redis database with the given options // and returns a pipeling and a function for closing. This function // shall be called with a defer. func pipelineDatabase(assert audit.Assertion, options ...redis.Option) (*redis.Pipeline, func()) { // Open and connect database. options = append(options, redis.Index(testDatabaseIndex, "")) db, err := redis.Open(options...) assert.Nil(err) ppl, err := db.Pipeline() assert.Nil(err) // Return pipeline and cleanup function. return ppl, func() { db.Close() } }
// subscribeDatabase connects to a Redis database with the given options // and returns a subscription and a function for closing. This function // shall be called with a defer. func subscribeDatabase(assert audit.Assertion, options ...redis.Option) (*redis.Subscription, func()) { // Open and connect database. options = append(options, redis.Index(testDatabaseIndex, "")) db, err := redis.Open(options...) assert.Nil(err) sub, err := db.Subscription() assert.Nil(err) // Return subscription and cleanup function. return sub, func() { sub.Close() db.Close() } }
// connectDatabase connects to a Redis database with the given options // and returns a connection and a function for closing. This function // shall be called with defer. func connectDatabase(assert audit.Assertion, options ...redis.Option) (*redis.Connection, func()) { // Open and connect database. options = append(options, redis.Index(testDatabaseIndex, "")) db, err := redis.Open(options...) assert.Nil(err) conn, err := db.Connection() assert.Nil(err) // Flush all keys to get a clean testing environment. _, err = conn.Do("flushdb") assert.Nil(err) // Return connection and cleanup function. return conn, func() { conn.Return() db.Close() } }