1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
#!/usr/bin/env python
#coding: utf-8
from common import *
def test_setget():
r = getconn()
rst = r.set('k', 'v')
assert(r.get('k') == 'v')
def test_msetnx():
r = getconn()
#not supported
keys = default_kv.keys()
assert_fail('Socket closed|Connection closed', r.msetnx,**default_kv)
def test_null_key():
r = getconn()
rst = r.set('', 'v')
assert(r.get('') == 'v')
rst = r.set('', '')
assert(r.get('') == '')
kv = {'' : 'val', 'k': 'v'}
ret = r.mset(**kv)
assert(r.get('') == 'val')
def test_ping_quit():
r = getconn()
assert(r.ping() == True)
#get set
rst = r.set('k', 'v')
assert(r.get('k') == 'v')
assert_fail('Socket closed|Connection closed', r.execute_command, 'QUIT')
def test_slow_req():
r = getconn()
kv = {'mkkk-%s' % i : 'mvvv-%s' % i for i in range(500000)}
pipe = r.pipeline(transaction=False)
pipe.set('key-1', 'v1')
pipe.get('key-1')
pipe.hmset('xxx', kv)
pipe.get('key-2')
pipe.get('key-3')
assert_fail('timed out', pipe.execute)
def test_signal():
#init
nc.cleanlog()
nc.signal('HUP')
nc.signal('HUP')
nc.signal('TTIN')
nc.signal('TTOU')
nc.signal('SEGV')
time.sleep(.3)
log = file(nc.logfile()).read()
assert(strstr(log, 'HUP'))
assert(strstr(log, 'TTIN'))
assert(strstr(log, 'TTOU'))
assert(strstr(log, 'SEGV'))
#recover
nc.start()
def test_nc_stats():
nc.stop() #reset counters
nc.start()
r = getconn()
kv = {'kkk-%s' % i :'vvv-%s' % i for i in range(10)}
for k, v in kv.items():
r.set(k, v)
r.get(k)
def get_stat(name):
time.sleep(1)
stat = nc._info_dict()
#pprint(stat)
if name in ['client_connections', 'client_eof', 'client_err', \
'forward_error', 'fragments', 'server_ejects']:
return stat[CLUSTER_NAME][name]
#sum num of each server
ret = 0
for k, v in stat[CLUSTER_NAME].items():
if type(v) == dict:
ret += v[name]
return ret
assert(get_stat('requests') == 20)
assert(get_stat('responses') == 20)
##### mget
keys = kv.keys()
r.mget(keys)
#for version<=0.3.0
#assert(get_stat('requests') == 30)
#assert(get_stat('responses') == 30)
#for mget-improve
assert(get_stat('requests') == 22)
assert(get_stat('responses') == 22)
def test_issue_323():
# do on redis
r = all_redis[0]
c = redis.Redis(r.host(), r.port())
assert([1, 'OK'] == c.eval("return {1, redis.call('set', 'x', '1')}", 1, 'tmp'))
# do on twemproxy
c = getconn()
assert([1, 'OK'] == c.eval("return {1, redis.call('set', 'x', '1')}", 1, 'tmp'))
def setup_and_wait():
time.sleep(60*60)
|