func (s *RedisSuite) WithRedis(fn func(redis.Conn)) {
	cnx := s.Pool.Get()
	defer cnx.Close()
	fn(cnx)
}
WithRedis runs a function and passes it a valid redis.Conn instance. It does
so by obtaining the redis.Conn instance from the owned *redis.Pool and then
closing once the outer function has returned.
package test
import (
	"github.com/garyburd/redigo/redis"
	"github.com/stretchr/testify/suite"
)
type RedisSuite struct {
	Pool *redis.Pool
	suite.Suite
}
func NewSuite(pool *redis.Pool) *RedisSuite {
	return &RedisSuite{Pool: pool}
}
func (s *RedisSuite) SetupTest() {
	s.WithRedis(func(cnx redis.Conn) {
		cnx.Do("FLUSHALL")
	})
}
func (r *RedisSuite) MustDo(cmd string, args ...interface{}) (reply interface{}) {
	cnx := r.Pool.Get()
	defer cnx.Close()
	reply, err := cnx.Do(cmd, args...)
	if err != nil {
		panic(err)
	}
	return reply
}