Allow empty options in redis token source string when using default values
This commit is contained in:
parent
e23d4e337c
commit
3d2e93aeb0
|
|
@ -289,3 +289,67 @@ class TokenRedisTestCase(unittest.TestCase):
|
||||||
self.assertEqual(plugin._port, 1234)
|
self.assertEqual(plugin._port, 1234)
|
||||||
self.assertEqual(plugin._db, 2)
|
self.assertEqual(plugin._db, 2)
|
||||||
self.assertEqual(plugin._password, 'verysecret')
|
self.assertEqual(plugin._password, 'verysecret')
|
||||||
|
|
||||||
|
def test_src_with_host_empty_port_empty_db_pass(self):
|
||||||
|
plugin = TokenRedis('127.0.0.1:::verysecret')
|
||||||
|
|
||||||
|
self.assertEqual(plugin._server, '127.0.0.1')
|
||||||
|
self.assertEqual(plugin._port, 6379)
|
||||||
|
self.assertEqual(plugin._db, 0)
|
||||||
|
self.assertEqual(plugin._password, 'verysecret')
|
||||||
|
|
||||||
|
def test_src_with_host_empty_port_empty_db_empty_pass(self):
|
||||||
|
plugin = TokenRedis('127.0.0.1:::')
|
||||||
|
|
||||||
|
self.assertEqual(plugin._server, '127.0.0.1')
|
||||||
|
self.assertEqual(plugin._port, 6379)
|
||||||
|
self.assertEqual(plugin._db, 0)
|
||||||
|
self.assertEqual(plugin._password, None)
|
||||||
|
|
||||||
|
def test_src_with_host_empty_port_empty_db_no_pass(self):
|
||||||
|
plugin = TokenRedis('127.0.0.1::')
|
||||||
|
|
||||||
|
self.assertEqual(plugin._server, '127.0.0.1')
|
||||||
|
self.assertEqual(plugin._port, 6379)
|
||||||
|
self.assertEqual(plugin._db, 0)
|
||||||
|
self.assertEqual(plugin._password, None)
|
||||||
|
|
||||||
|
def test_src_with_host_empty_port_no_db_no_pass(self):
|
||||||
|
plugin = TokenRedis('127.0.0.1:')
|
||||||
|
|
||||||
|
self.assertEqual(plugin._server, '127.0.0.1')
|
||||||
|
self.assertEqual(plugin._port, 6379)
|
||||||
|
self.assertEqual(plugin._db, 0)
|
||||||
|
self.assertEqual(plugin._password, None)
|
||||||
|
|
||||||
|
def test_src_with_host_empty_port_db_no_pass(self):
|
||||||
|
plugin = TokenRedis('127.0.0.1::2')
|
||||||
|
|
||||||
|
self.assertEqual(plugin._server, '127.0.0.1')
|
||||||
|
self.assertEqual(plugin._port, 6379)
|
||||||
|
self.assertEqual(plugin._db, 2)
|
||||||
|
self.assertEqual(plugin._password, None)
|
||||||
|
|
||||||
|
def test_src_with_host_port_empty_db_pass(self):
|
||||||
|
plugin = TokenRedis('127.0.0.1:1234::verysecret')
|
||||||
|
|
||||||
|
self.assertEqual(plugin._server, '127.0.0.1')
|
||||||
|
self.assertEqual(plugin._port, 1234)
|
||||||
|
self.assertEqual(plugin._db, 0)
|
||||||
|
self.assertEqual(plugin._password, 'verysecret')
|
||||||
|
|
||||||
|
def test_src_with_host_empty_port_db_pass(self):
|
||||||
|
plugin = TokenRedis('127.0.0.1::2:verysecret')
|
||||||
|
|
||||||
|
self.assertEqual(plugin._server, '127.0.0.1')
|
||||||
|
self.assertEqual(plugin._port, 6379)
|
||||||
|
self.assertEqual(plugin._db, 2)
|
||||||
|
self.assertEqual(plugin._password, 'verysecret')
|
||||||
|
|
||||||
|
def test_src_with_host_empty_port_db_empty_pass(self):
|
||||||
|
plugin = TokenRedis('127.0.0.1::2:')
|
||||||
|
|
||||||
|
self.assertEqual(plugin._server, '127.0.0.1')
|
||||||
|
self.assertEqual(plugin._port, 6379)
|
||||||
|
self.assertEqual(plugin._db, 2)
|
||||||
|
self.assertEqual(plugin._password, None)
|
||||||
|
|
|
||||||
|
|
@ -163,16 +163,21 @@ class TokenRedis(BasePlugin):
|
||||||
|
|
||||||
host[:port[:db[:password]]]
|
host[:port[:db[:password]]]
|
||||||
|
|
||||||
where port and password are optional.
|
where port, db and password are optional. If port or db are left empty
|
||||||
|
they will take its default value, ie. 6379 and 0 respectively.
|
||||||
|
|
||||||
If your redis server is using the default port (6379) then you can use:
|
If your redis server is using the default port (6379) then you can use:
|
||||||
|
|
||||||
my-redis-host
|
my-redis-host
|
||||||
|
|
||||||
In case you need to authenticate with the redis server you will have to
|
In case you need to authenticate with the redis server and you are using
|
||||||
specify also the port and db:
|
the default database and port you can use:
|
||||||
|
|
||||||
my-redis-host:6379:0:verysecretpass
|
my-redis-host:::verysecretpass
|
||||||
|
|
||||||
|
In the more general case you will use:
|
||||||
|
|
||||||
|
my-redis-host:6380:1:verysecretpass
|
||||||
|
|
||||||
The TokenRedis plugin expects the format of the target in one of these two
|
The TokenRedis plugin expects the format of the target in one of these two
|
||||||
formats:
|
formats:
|
||||||
|
|
@ -218,10 +223,22 @@ class TokenRedis(BasePlugin):
|
||||||
self._server = fields[0]
|
self._server = fields[0]
|
||||||
elif len(fields) == 2:
|
elif len(fields) == 2:
|
||||||
self._server, self._port = fields
|
self._server, self._port = fields
|
||||||
|
if not self._port:
|
||||||
|
self._port = 6379
|
||||||
elif len(fields) == 3:
|
elif len(fields) == 3:
|
||||||
self._server, self._port, self._db = fields
|
self._server, self._port, self._db = fields
|
||||||
|
if not self._port:
|
||||||
|
self._port = 6379
|
||||||
|
if not self._db:
|
||||||
|
self._db = 0
|
||||||
elif len(fields) == 4:
|
elif len(fields) == 4:
|
||||||
self._server, self._port, self._db, self._password = fields
|
self._server, self._port, self._db, self._password = fields
|
||||||
|
if not self._port:
|
||||||
|
self._port = 6379
|
||||||
|
if not self._db:
|
||||||
|
self._db = 0
|
||||||
|
if not self._password:
|
||||||
|
self._password = None
|
||||||
else:
|
else:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
self._port = int(self._port)
|
self._port = int(self._port)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue