blob: 9871d7a192d00dde13bf93b71bdc2b23a4570677 [file] [log] [blame]
import redis
import time
from assert_helper import *
from conn import *
def test_type():
conn = get_redis_conn()
string_key = "test_string_type"
ret = conn.set(string_key, "bar")
assert(ret == True)
ret = conn.type(string_key)
assert(ret == "string")
hash_key = "test_hash_type"
ret = conn.hset(hash_key, "f1", "v1")
assert(ret == 1)
ret = conn.type(hash_key)
assert(ret == "hash")
list_key = "test_list_type"
ret = conn.lpush(list_key, "v1")
assert(ret == 1)
ret = conn.type(list_key)
assert(ret == "list")
set_key = "test_set_type"
ret = conn.sadd(set_key, "s1")
assert(ret == 1)
ret = conn.type(set_key)
assert(ret == "set")
zset_key = "test_zset_type"
ret = conn.zadd(zset_key, "s1", 0.1)
assert(ret == 1)
ret = conn.type(zset_key)
assert(ret == "zset")
ret = conn.delete(string_key, hash_key, list_key, set_key, zset_key)
assert(ret == 5)
def test_expire():
key = "test_expire"
conn = get_redis_conn()
ret = conn.lpush(key, "v1")
assert(ret == 1)
ret = conn.expire(key, 2)
assert(ret == 1)
ret = conn.ttl(key)
assert(ret >= 1 and ret <= 2)
time.sleep(3)
ret = conn.exists(key)
assert(ret == False)
def test_exists():
key = "test_exists"
conn = get_redis_conn()
ret = conn.set(key, "bar")
assert(ret)
ret = conn.exists(key)
assert(ret)
ret = conn.delete(key)
assert(ret == 1)
ret = conn.exists(key)
assert(not ret)
def test_ttl():
key = "test_ttl"
conn = get_redis_conn()
ret = conn.set(key, "bar")
assert(ret)
ret = conn.ttl(key)
assert(ret == None)
ret = conn.ttl("notexistskey")
assert(ret == None)
ret = conn.expire(key, 2)
assert(ret == 1)
ret = conn.ttl(key)
assert(ret >= 1 and ret <= 2)
def test_object_dump():
default_namespace = "__namespace"
conn = get_redis_conn()
string_key = "test_string_dump"
ret = conn.set(string_key, "bar")
assert(ret == True)
ret = conn.object("dump", string_key)
assert(ret[1] == default_namespace)
assert(ret[3] == "string")
assert(ret[7] == "0")
assert(ret[9] == "0")
ret = conn.expire(string_key, 2)
assert (ret == True)
ret = conn.object("dump", string_key)
ttl = int(ret[7]) - int(time.time())
assert (1 <= ttl <= 2)
hash_key = "test_hash_dump"
ret = conn.hset(hash_key, "f1", "v1")
assert(ret == 1)
ret = conn.object("dump", hash_key)
assert(ret[1] == default_namespace)
assert(ret[3] == "hash")
assert(ret[7] == "-1")
assert(ret[9] == "1")
ret = conn.hset(hash_key, "f2", "v2")
assert (ret == 1)
ret = conn.object("dump", hash_key)
assert (ret[1] == default_namespace)
assert (ret[3] == "hash")
assert (ret[7] == "-1")
assert (ret[9] == "2")
ret = conn.hdel(hash_key, "f2")
assert (ret == 1)
ret = conn.object("dump", hash_key)
assert (ret[1] == default_namespace)
assert (ret[3] == "hash")
assert (ret[7] == "-1")
assert (ret[9] == "1")
list_key = "test_list_dump"
ret = conn.lpush(list_key, "v1")
assert(ret == 1)
ret = conn.object("dump", list_key)
assert(ret[1] == default_namespace)
assert(ret[3] == "list")
assert(ret[7] == "-1")
assert(ret[9] == "1")
ret = conn.lpush(list_key, "v2")
assert (ret == 2)
ret = conn.object("dump", list_key)
assert (ret[1] == default_namespace)
assert (ret[3] == "list")
assert (ret[7] == "-1")
assert (ret[9] == "2")
ret = conn.lpop(list_key)
assert (ret == "v2")
ret = conn.object("dump", list_key)
assert (ret[1] == default_namespace)
assert (ret[3] == "list")
assert (ret[7] == "-1")
assert (ret[9] == "1")
set_key = "test_set_dump"
ret = conn.sadd(set_key, "s1")
assert(ret == 1)
ret = conn.object("dump", set_key)
assert(ret[1] == default_namespace)
assert(ret[3] == "set")
assert(ret[7] == "-1")
assert(ret[9] == "1")
ret = conn.sadd(set_key, "s2")
assert (ret == 1)
ret = conn.object("dump", set_key)
assert (ret[1] == default_namespace)
assert (ret[3] == "set")
assert (ret[7] == "-1")
assert (ret[9] == "2")
ret = conn.spop(set_key)
assert (ret == ['s1'])
ret = conn.object("dump", set_key)
assert (ret[1] == default_namespace)
assert (ret[3] == "set")
assert (ret[7] == "-1")
assert (ret[9] == "1")
zset_key = "test_zset_dump"
ret = conn.zadd(zset_key, "s1", 0.1)
assert(ret == 1)
ret = conn.object("dump", zset_key)
assert(ret[1] == default_namespace)
assert(ret[3] == "zset")
assert(ret[7] == "-1")
assert(ret[9] == "1")
ret = conn.zadd(zset_key, "s2", 0.2)
assert (ret == 1)
ret = conn.object("dump", zset_key)
assert (ret[1] == default_namespace)
assert (ret[3] == "zset")
assert (ret[7] == "-1")
assert (ret[9] == "2")
ret = conn.zrem(zset_key, "s2")
assert (ret == 1)
ret = conn.object("dump", zset_key)
assert (ret[1] == default_namespace)
assert (ret[3] == "zset")
assert (ret[7] == "-1")
assert (ret[9] == "1")
ret = conn.expire(zset_key, 2)
assert (ret == True)
ret = conn.object("dump", zset_key)
ttl = int(ret[7]) - int(time.time())
assert (1 <= ttl <= 2)
ret = conn.delete(string_key, hash_key, list_key, set_key, zset_key)
assert(ret == 5)
def test_persist():
key = "test_persist"
conn = get_redis_conn()
ret = conn.persist(key)
assert(not ret)
ret = conn.set(key, "bar")
assert(ret)
ret = conn.persist(key)
assert(not ret)
ret = conn.expire(key, 100)
assert(ret == 1)
ret = conn.persist(key)
assert(ret)
ret = conn.delete(key)
assert(ret == 1)
def test_expireat():
key = "test_expireat"
conn = get_redis_conn()
ret = conn.sadd(key, "s1")
assert(ret == 1)
ret = conn.expireat(key, time.time()+2)
assert(ret == 1)
ret = conn.ttl(key)
assert(ret >= 1 and ret <= 2)
time.sleep(3)
ret = conn.exists(key)
assert(ret == False)
def test_pexpire():
key = "test_pexpire"
conn = get_redis_conn()
ret = conn.hset(key, "f1", "v1")
assert(ret == 1)
ret = conn.pexpire(key, 2000)
assert(ret == 1)
ret = conn.pttl(key)
assert(ret >= 1000 and ret <= 2000)
time.sleep(3)
ret = conn.exists(key)
assert(ret == False)
def test_pexpireat():
key = "test_pexpireat"
conn = get_redis_conn()
ret = conn.sadd(key, "s1")
assert(ret == 1)
ret = conn.pexpireat(key, (time.time()+2)*1000)
assert(ret == 1)
ret = conn.pttl(key)
assert(ret >= 1000 and ret <= 2000)
time.sleep(3)
ret = conn.exists(key)
assert(ret == False)
def test_pttl():
key = "test_ttl"
conn = get_redis_conn()
ret = conn.set(key, "bar")
assert(ret)
ret = conn.ttl(key)
assert(ret == None)
ret = conn.ttl("notexistskey")
assert(ret == None)
ret = conn.pexpire(key, 2000)
assert(ret == 1)
ret = conn.ttl(key)
assert(ret >= 1 and ret <= 2)
ret = conn.delete(key)
assert(ret == 1)
def test_randomkey():
keys = ["test_randomkey", "test_randomkey_1", "test_randomkey_2"]
conn = get_redis_conn()
for key in keys:
ret = conn.set(key, "bar")
assert(ret)
ret = conn.execute_command("RANDOMKEY")
assert(ret in keys)
for key in keys:
ret = conn.delete(key)
assert(ret == 1)
def test_scan():
key = "test_scan"
conn = get_redis_conn()
ret = conn.set(key, "bar")
assert(ret)
ret = conn.execute_command("SCAN" + " 0")
assert (ret == [key, [key]])
ret = conn.delete(key)
assert (ret == 1)