Skip to content

Commit

Permalink
根据keyspace获取databases num时,需要加1 (#2573)
Browse files Browse the repository at this point in the history
Co-authored-by: 王飞 <[email protected]>
  • Loading branch information
feiazifeiazi and 王飞 authored Apr 10, 2024
1 parent f8e1f4b commit 370d8c0
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
*.pyc
*.swp
.vscode/*
*.lock
*.log
.idea/
Expand Down
2 changes: 1 addition & 1 deletion sql/engines/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def get_all_databases(self, **kwargs):
for i in conn.info("Keyspace").keys()
if len(i.split("db")) == 2
]
rows = max(dbs + [16])
rows = max(dbs + [15]) + 1

db_list = [str(x) for x in range(int(rows))]
result.rows = db_list
Expand Down
22 changes: 22 additions & 0 deletions sql/engines/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,28 @@ def test_get_all_databases(self, _config_get):
dbs = new_engine.get_all_databases()
self.assertListEqual(dbs.rows, ["0", "1", "2", "3"])

@patch("redis.Redis.info")
@patch("redis.Redis.config_get")
def test_get_all_databases_exception_handling(self, mock_config_get, mock_info):
# 模拟config_get方法抛出异常
mock_config_get.side_effect = Exception("模拟config_get异常")
# 模拟info方法返回特定的Keyspace信息
mock_info.return_value = {
"db0": "some_info",
"db1": "some_info",
"db18": "some_info",
}
# 实例化RedisEngine并调用get_all_databases方法
new_engine = RedisEngine(instance=self.ins)
result = new_engine.get_all_databases()
# 验证返回的数据库列表是否符合预期.
expected_dbs = [str(x) for x in range(int(19))]
self.assertListEqual(result.rows, expected_dbs)
# 验证config_get方法被调用
mock_config_get.assert_called_once_with("databases")
# 验证info方法被调用
mock_info.assert_called_once_with("Keyspace")

def test_query_check_safe_cmd(self):
safe_cmd = "keys 1*"
new_engine = RedisEngine(instance=self.ins)
Expand Down

0 comments on commit 370d8c0

Please sign in to comment.