From 8121a5265a904e5e9f93a175bac973b2937cbf18 Mon Sep 17 00:00:00 2001 From: Javier Cacheiro Date: Fri, 22 Apr 2022 13:50:55 +0200 Subject: Token Redis source: add optional redis port, redis database and redis password --- tests/test_token_plugins.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'tests') diff --git a/tests/test_token_plugins.py b/tests/test_token_plugins.py index 3e1fd19..0d3b578 100644 --- a/tests/test_token_plugins.py +++ b/tests/test_token_plugins.py @@ -203,3 +203,35 @@ class TokenRedisTestCase(unittest.TestCase): self.assertIsNotNone(result) self.assertEqual(result[0], 'remote_host') self.assertEqual(result[1], 'remote_port') + + def test_src_only_host(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_port(self): + plugin = TokenRedis('127.0.0.1:1234') + + self.assertEqual(plugin._server, '127.0.0.1') + self.assertEqual(plugin._port, 1234) + self.assertEqual(plugin._db, 0) + self.assertEqual(plugin._password, None) + + def test_src_with_host_port_db(self): + plugin = TokenRedis('127.0.0.1:1234:2') + + self.assertEqual(plugin._server, '127.0.0.1') + self.assertEqual(plugin._port, 1234) + self.assertEqual(plugin._db, 2) + self.assertEqual(plugin._password, None) + + def test_src_with_host_port_db_pass(self): + plugin = TokenRedis('127.0.0.1:1234:2:verysecret') + + self.assertEqual(plugin._server, '127.0.0.1') + self.assertEqual(plugin._port, 1234) + self.assertEqual(plugin._db, 2) + self.assertEqual(plugin._password, 'verysecret') -- cgit v1.2.1 From e23d4e337cd3f4a83d160220af4b09e446eed61a Mon Sep 17 00:00:00 2001 From: Javier Cacheiro Date: Fri, 22 Apr 2022 13:54:27 +0200 Subject: Token Redis: Support both json and plain text tokens --- tests/test_token_plugins.py | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'tests') diff --git a/tests/test_token_plugins.py b/tests/test_token_plugins.py index 0d3b578..b3a1847 100644 --- a/tests/test_token_plugins.py +++ b/tests/test_token_plugins.py @@ -204,6 +204,60 @@ class TokenRedisTestCase(unittest.TestCase): self.assertEqual(result[0], 'remote_host') self.assertEqual(result[1], 'remote_port') + @patch('redis.Redis') + def test_json_token_with_spaces(self, mock_redis): + plugin = TokenRedis('127.0.0.1:1234') + + instance = mock_redis.return_value + instance.get.return_value = b' {"host": "remote_host:remote_port"} ' + + result = plugin.lookup('testhost') + + instance.get.assert_called_once_with('testhost') + self.assertIsNotNone(result) + self.assertEqual(result[0], 'remote_host') + self.assertEqual(result[1], 'remote_port') + + @patch('redis.Redis') + def test_text_token(self, mock_redis): + plugin = TokenRedis('127.0.0.1:1234') + + instance = mock_redis.return_value + instance.get.return_value = b'remote_host:remote_port' + + result = plugin.lookup('testhost') + + instance.get.assert_called_once_with('testhost') + self.assertIsNotNone(result) + self.assertEqual(result[0], 'remote_host') + self.assertEqual(result[1], 'remote_port') + + @patch('redis.Redis') + def test_text_token_with_spaces(self, mock_redis): + plugin = TokenRedis('127.0.0.1:1234') + + instance = mock_redis.return_value + instance.get.return_value = b' remote_host:remote_port ' + + result = plugin.lookup('testhost') + + instance.get.assert_called_once_with('testhost') + self.assertIsNotNone(result) + self.assertEqual(result[0], 'remote_host') + self.assertEqual(result[1], 'remote_port') + + @patch('redis.Redis') + def test_invalid_token(self, mock_redis): + plugin = TokenRedis('127.0.0.1:1234') + + instance = mock_redis.return_value + instance.get.return_value = b'{"host": "remote_host:remote_port" ' + + result = plugin.lookup('testhost') + + instance.get.assert_called_once_with('testhost') + self.assertIsNone(result) + def test_src_only_host(self): plugin = TokenRedis('127.0.0.1') -- cgit v1.2.1 From 3d2e93aeb039d44850abe2bb7eecad0938be0c41 Mon Sep 17 00:00:00 2001 From: Javier Cacheiro Date: Wed, 25 May 2022 11:37:33 +0200 Subject: Allow empty options in redis token source string when using default values --- tests/test_token_plugins.py | 64 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'tests') diff --git a/tests/test_token_plugins.py b/tests/test_token_plugins.py index b3a1847..d13d944 100644 --- a/tests/test_token_plugins.py +++ b/tests/test_token_plugins.py @@ -289,3 +289,67 @@ class TokenRedisTestCase(unittest.TestCase): self.assertEqual(plugin._port, 1234) self.assertEqual(plugin._db, 2) 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) -- cgit v1.2.1