redis-shake工具
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

41 lines
1.2 KiB

import pybbt
from helpers.commands.checker import Checker
from helpers.redis import Redis
class SelectChecker(Checker):
PREFIX = "select"
def __init__(self):
self.cnt = 0
def add_data(self, r: Redis, cross_slots_cmd: bool):
if not cross_slots_cmd:
return
p = r.pipeline()
p.select(1)
p.set(f"{self.PREFIX}_{self.cnt}_db1", "db1")
p.select(2)
p.set(f"{self.PREFIX}_{self.cnt}_db2", "db2")
p.select(3)
p.set(f"{self.PREFIX}_{self.cnt}_db3", "db3")
p.select(0)
ret = p.execute()
pybbt.ASSERT_EQ(ret, [True, True, True, True, True, True, True])
self.cnt += 1
def check_data(self, r: Redis, cross_slots_cmd: bool):
if not cross_slots_cmd:
return
for i in range(self.cnt):
p = r.pipeline()
p.select(1)
p.get(f"{self.PREFIX}_{i}_db1")
p.select(2)
p.get(f"{self.PREFIX}_{i}_db2")
p.select(3)
p.get(f"{self.PREFIX}_{i}_db3")
p.select(0)
ret = p.execute()
pybbt.ASSERT_EQ(ret, [True, b'db1', True, b'db2', True, b'db3', True])