Ejemplo n.º 1
0
 def test_sinterstore(self):
     l.sadd('a', '1', '2', '3')
     assert l.sinterstore('c', 'a', 'b') == 0
     assert l.smembers('c') == set()
     l.sadd('b', '2', '3')
     assert l.sinterstore('c', 'a', 'b') == 2
     assert l.smembers('c') == set([b('2'), b('3')])
Ejemplo n.º 2
0
 def test_spersist(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     l.sexpire('a', 100)
     assert l.sttl('a') <= 100
     assert l.spersist('a')
     assert l.sttl('a') == -1
Ejemplo n.º 3
0
 def test_sinterstore(self):
     l.sadd('a', '1', '2', '3')
     assert l.sinterstore('c', 'a', 'b') == 0
     assert l.smembers('c') == set()
     l.sadd('b', '2', '3')
     assert l.sinterstore('c', 'a', 'b') == 2
     assert l.smembers('c') == set([b('2'), b('3')])
Ejemplo n.º 4
0
 def test_spersist(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     l.sexpire('a', 100)
     assert l.sttl('a') <= 100
     assert l.spersist('a')
     assert l.sttl('a') == -1
Ejemplo n.º 5
0
 def test_decrby(self):
     assert l.delete('a') == 1
     assert l.decrby('a') == -1
     assert l['a'] == b('-1')
     assert l.decrby('a') == -2
     assert l['a'] == b('-2')
     assert l.decrby('a', amount=5) == -7
     assert l['a'] == b('-7')
Ejemplo n.º 6
0
 def test_decrby(self):
     assert l.delete('a') == 1
     assert l.decrby('a') == -1
     assert l['a'] == b('-1')
     assert l.decrby('a') == -2
     assert l['a'] == b('-2')
     assert l.decrby('a', amount=5) == -7
     assert l['a'] == b('-7')
Ejemplo n.º 7
0
    def test_zrangebyscore(self):
        l.zadd("a", a1=1, a2=2, a3=3, a4=4, a5=5)
        assert l.zrangebyscore("a", 2, 4) == [b("a2"), b("a3"), b("a4")]

        # slicing with start/num
        assert l.zrangebyscore("a", 2, 4, start=1, num=2) == [b("a3"), b("a4")]

        # withscores
        assert l.zrangebyscore("a", 2, 4, withscores=True) == [("a2", 2), ("a3", 3), ("a4", 4)]
Ejemplo n.º 8
0
 def test_sdiffstore(self):
     l.sadd('a', '1', '2', '3')
     assert l.sdiffstore('c', 'a', 'b') == 3
     assert l.smembers('c') == set([b('1'), b('2'), b('3')])
     l.sadd('b', '2', '3')
     print l.smembers('c')
     print "before"
     assert l.sdiffstore('c', 'a', 'b') == 1
     print l.smembers('c')
     assert l.smembers('c') == set([b('1')])
Ejemplo n.º 9
0
 def pack_command(self, *args):
     "Pack a series of arguments into a value Ledis command"
     output = SYM_STAR + b(str(len(args))) + SYM_CRLF
     for enc_value in imap(self.encode, args):
         output += SYM_DOLLAR
         output += b(str(len(enc_value)))
         output += SYM_CRLF
         output += enc_value
         output += SYM_CRLF
     return output
Ejemplo n.º 10
0
 def test_sdiffstore(self):
     l.sadd('a', '1', '2', '3')
     assert l.sdiffstore('c', 'a', 'b') == 3
     assert l.smembers('c') == set([b('1'), b('2'), b('3')])
     l.sadd('b', '2', '3')
     print l.smembers('c')
     print "before"
     assert l.sdiffstore('c', 'a', 'b') == 1
     print l.smembers('c')
     assert l.smembers('c') == set([b('1')])
Ejemplo n.º 11
0
 def pack_command(self, *args):
     "Pack a series of arguments into a value Ledis command"
     output = SYM_STAR + b(str(len(args))) + SYM_CRLF
     for enc_value in imap(self.encode, args):
         output += SYM_DOLLAR
         output += b(str(len(enc_value)))
         output += SYM_CRLF
         output += enc_value
         output += SYM_CRLF
     return output
Ejemplo n.º 12
0
    def test_zrangebyscore(self):
        l.zadd('a', a1=1, a2=2, a3=3, a4=4, a5=5)
        assert l.zrangebyscore('a', 2, 4) == [b('a2'), b('a3'), b('a4')]

        # slicing with start/num
        assert l.zrangebyscore('a', 2, 4, start=1, num=2) == \
            [b('a3'), b('a4')]

        # withscores
        assert l.zrangebyscore('a', 2, 4, withscores=True) == \
            [('a2', 2), ('a3', 3), ('a4', 4)]
Ejemplo n.º 13
0
    def test_zrangebyscore(self):
        l.zadd('a', a1=1, a2=2, a3=3, a4=4, a5=5)
        assert l.zrangebyscore('a', 2, 4) == [b('a2'), b('a3'), b('a4')]

        # slicing with start/num
        assert l.zrangebyscore('a', 2, 4, start=1, num=2) == \
            [b('a3'), b('a4')]

        # withscores
        assert l.zrangebyscore('a', 2, 4, withscores=True) == \
            [('a2', 2), ('a3', 3), ('a4', 4)]
Ejemplo n.º 14
0
    def test_zrem(self):
        l.zadd('a', a1=1, a2=2, a3=3)
        assert l.zrem('a', 'a2') == 1
        assert l.zrange('a', 0, -1) == [b('a1'), b('a3')]
        assert l.zrem('a', 'b') == 0
        assert l.zrange('a', 0, -1) == [b('a1'), b('a3')]

        # multiple keys
        l.zadd('a', a1=1, a2=2, a3=3)
        assert l.zrem('a', 'a1', 'a2') == 2
        assert l.zrange('a', 0, -1) == [b('a3')]
Ejemplo n.º 15
0
    def test_zrem(self):
        l.zadd("a", a1=1, a2=2, a3=3)
        assert l.zrem("a", "a2") == 1
        assert l.zrange("a", 0, -1) == [b("a1"), b("a3")]
        assert l.zrem("a", "b") == 0
        assert l.zrange("a", 0, -1) == [b("a1"), b("a3")]

        # multiple keys
        l.zadd("a", a1=1, a2=2, a3=3)
        assert l.zrem("a", "a1", "a2") == 2
        assert l.zrange("a", 0, -1) == [b("a3")]
Ejemplo n.º 16
0
    def test_zrem(self):
        l.zadd('a', a1=1, a2=2, a3=3)
        assert l.zrem('a', 'a2') == 1
        assert l.zrange('a', 0, -1) == [b('a1'), b('a3')]
        assert l.zrem('a', 'b') == 0
        assert l.zrange('a', 0, -1) == [b('a1'), b('a3')]

        # multiple keys
        l.zadd('a', a1=1, a2=2, a3=3)
        assert l.zrem('a', 'a1', 'a2') == 2
        assert l.zrange('a', 0, -1) == [b('a3')]
Ejemplo n.º 17
0
    def test_flushall(self):
        l.select(1)
        l.set("a", 1)
        assert l.get("a") == b("1")

        l.select(10)
        l.set("a", 1)
        assert l.get("a") == b("1")

        assert l.flushall() == "OK"

        assert l.get("a") is None
        l.select(1)
        assert l.get("a") is None
Ejemplo n.º 18
0
    def test_flushall(self):
        l.select(1)
        l.set("a", 1)
        assert l.get("a") == b("1")

        l.select(10)
        l.set("a", 1)
        assert l.get("a") == b("1")

        assert l.flushall() == "OK"

        assert l.get("a") is None
        l.select(1)
        assert l.get("a") is None
Ejemplo n.º 19
0
    def test_zrange(self):
        l.zadd("a", a1=1, a2=2, a3=3)
        assert l.zrange("a", 0, 1) == [b("a1"), b("a2")]
        assert l.zrange("a", 2, 3) == [b("a3")]

        # withscores
        assert l.zrange("a", 0, 1, withscores=True) == [(b("a1"), 1), (b("a2"), 2)]
        assert l.zrange("a", 2, 3, withscores=True) == [(b("a3"), 3)]
Ejemplo n.º 20
0
    def test_zrange(self):
        l.zadd('a', a1=1, a2=2, a3=3)
        assert l.zrange('a', 0, 1) == [b('a1'), b('a2')]
        assert l.zrange('a', 2, 3) == [b('a3')]

        #withscores
        assert l.zrange('a', 0, 1, withscores=True) == \
            [(b('a1'), 1), (b('a2'), 2)]
        assert l.zrange('a', 2, 3, withscores=True) == \
            [(b('a3'), 3)]
Ejemplo n.º 21
0
    def test_zrange(self):
        l.zadd('a', a1=1, a2=2, a3=3)
        assert l.zrange('a', 0, 1) == [b('a1'), b('a2')]
        assert l.zrange('a', 2, 3) == [b('a3')]

        #withscores
        assert l.zrange('a', 0, 1, withscores=True) == \
            [(b('a1'), 1), (b('a2'), 2)]
        assert l.zrange('a', 2, 3, withscores=True) == \
            [(b('a3'), 3)]
Ejemplo n.º 22
0
    def check_keys(self, scan_type):
        d = {
            "scan": l.scan,
            "sscan": l.sscan,
            "lscan": l.lscan,
            "hscan": l.hscan,
            "zscan": l.zscan,
            "bscan": l.bscan
        }

        key, keys = d[scan_type]()
        assert key == ""
        assert set(keys) == set([b("a"), b("b"), b("c")])

        _, keys = d[scan_type](match="a")
        assert set(keys) == set([b("a")])

        _, keys = d[scan_type](key="a")
        assert set(keys) == set([b("b"), b("c")])
Ejemplo n.º 23
0
    def check_keys(self, scan_type):
        d = {
            "xscan": l.xscan,
            "sxscan": l.sxscan,
            "lxscan": l.lxscan,
            "hxscan": l.hxscan,
            "zxscan": l.zxscan,
            "bxscan": l.bxscan
        }

        key, keys = d[scan_type]()
        assert key == ""
        assert set(keys) == set([b("a"), b("b"), b("c")])

        _, keys = d[scan_type](match="a")
        assert set(keys) == set([b("a")])

        _, keys = d[scan_type](key="a")
        assert set(keys) == set([b("b"), b("c")])
Ejemplo n.º 24
0
    def check_keys(self, scan_type):
        d = {
            "xscan": l.xscan,
            "sxscan": l.sxscan,
            "lxscan": l.lxscan,
            "hxscan": l.hxscan,
            "zxscan": l.zxscan,
            "bxscan": l.bxscan
        }

        key, keys = d[scan_type]()
        assert key == ""
        assert set(keys) == set([b("a"), b("b"), b("c")])

        _, keys = d[scan_type](match="a")
        assert set(keys) == set([b("a")])

        _, keys = d[scan_type](key="a")
        assert set(keys) == set([b("b"), b("c")])
Ejemplo n.º 25
0
from __future__ import with_statement
import datetime
import time as mod_time
from itertools import chain, starmap
from ledis._compat import (b, izip, imap, iteritems, basestring, long,
                           nativestr, bytes)
from ledis.connection import ConnectionPool, UnixDomainSocketConnection, Token
from ledis.exceptions import (ConnectionError, DataError, LedisError,
                              ResponseError, TxNotBeginError)

SYM_EMPTY = b('')


def list_or_args(keys, args):
    # returns a single list combining keys and args
    try:
        iter(keys)
        # a string or bytes instance can be iterated, but indicates
        # keys wasn't passed as a list
        if isinstance(keys, (basestring, bytes)):
            keys = [keys]
    except TypeError:
        keys = [keys]
    if args:
        keys.extend(args)
    return keys


def string_keys_to_dict(key_string, callback):
    return dict.fromkeys(key_string.split(), callback)
Ejemplo n.º 26
0
from __future__ import with_statement
import datetime
import time as mod_time
from ledis._compat import (b, izip, imap, iteritems, iterkeys, itervalues,
                           basestring, long, nativestr, urlparse, bytes)
from ledis.connection import ConnectionPool, UnixDomainSocketConnection
from ledis.exceptions import (
    ConnectionError,
    DataError,
    LedisError,
    ResponseError,
    ExecAbortError,
)

SYM_EMPTY = b('')


def list_or_args(keys, args):
    # returns a single list combining keys and args
    try:
        iter(keys)
        # a string or bytes instance can be iterated, but indicates
        # keys wasn't passed as a list
        if isinstance(keys, (basestring, bytes)):
            keys = [keys]
    except TypeError:
        keys = [keys]
    if args:
        keys.extend(args)
    return keys
Ejemplo n.º 27
0
 def test_invalid_value(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     self.assertRaises(ResponseError, lambda: l.sexpire('a', 'a'))
Ejemplo n.º 28
0
 def test_bget(self):
     "bget is the same as get in K/V commands"
     l.bmsetbit('a', 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 0)
     assert l.bget('a') == b('\x7f')
Ejemplo n.º 29
0
 def test_sadd(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     assert l.smembers('a') == members
Ejemplo n.º 30
0
 def test_sdiff(self):
     l.sadd('a', '1', '2', '3')
     assert l.sdiff('a', 'b') == set([b('1'), b('2'), b('3')])
     l.sadd('b', '2', '3')
     assert l.sdiff('a', 'b') == set([b('1')])
Ejemplo n.º 31
0
 def test_zremrangebyscore(self):
     l.zadd('a', a1=1, a2=2, a3=3, a4=4, a5=5)
     assert l.zremrangebyscore('a', 2, 4) == 3
     assert l.zrange('a', 0, -1) == [b('a1'), b('a5')]
     assert l.zremrangebyscore('a', 2, 4) == 0
     assert l.zrange('a', 0, -1) == [b('a1'), b('a5')]
Ejemplo n.º 32
0
 def test_smclear(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     l.sadd('b', *members)
     assert l.smclear('a', 'b') == 2
Ejemplo n.º 33
0
 def test_smclear(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     l.sadd('b', *members)
     assert l.smclear('a', 'b') == 2
Ejemplo n.º 34
0
 def test_sunionstore(self):
     l.sadd('a', '1', '2')
     l.sadd('b', '2', '3')
     assert l.sunionstore('c', 'a', 'b') == 3
     assert l.smembers('c') == set([b('1'), b('2'), b('3')])
Ejemplo n.º 35
0
 def test_sexpireat(self):
     assert l.sexpireat('a', 1577808000) == 0
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     assert l.sexpireat('a', 1577808000) == 1
Ejemplo n.º 36
0
 def test_sexpireat_unixtime(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     assert l.sexpireat('a', expire_at_seconds())
     assert 0 < l.sttl('a') <= 61
Ejemplo n.º 37
0
 def test_sexpire(self):
     members = set([b('1'), b('2'), b('3')])
     assert l.sexpire('a', 100) == 0
     l.sadd('a', *members)
     assert l.sexpire('a', 100) == 1
     assert l.sttl('a') <= 100
Ejemplo n.º 38
0
 def test_sclear(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     assert l.sclear('a') == 3
     assert l.sclear('a') == 0
Ejemplo n.º 39
0
 def test_sclear(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     assert l.sclear('a') == 3
     assert l.sclear('a') == 0
Ejemplo n.º 40
0
 def test_sunionstore(self):
     l.sadd('a', '1', '2')
     l.sadd('b', '2', '3')
     assert l.sunionstore('c', 'a', 'b') == 3
     assert l.smembers('c') == set([b('1'), b('2'), b('3')])
Ejemplo n.º 41
0
 def test_zadd(self):
     l.zadd('a', a1=1, a2=2, a3=3)
     assert l.zrange('a', 0, -1) == [b('a1'), b('a2'), b('a3')]
Ejemplo n.º 42
0
 def test_sunion(self):
     l.sadd('a', '1', '2')
     l.sadd('b', '2', '3')
     assert l.sunion('a', 'b') == set([b('1'), b('2'), b('3')])
Ejemplo n.º 43
0
 def test_sinter(self):
     l.sadd('a', '1', '2', '3')
     assert l.sinter('a', 'b') == set()
     l.sadd('b', '2', '3')
     assert l.sinter('a', 'b') == set([b('2'), b('3')])
Ejemplo n.º 44
0
 def test_sdiff(self):
     l.sadd('a', '1', '2', '3')
     assert l.sdiff('a', 'b') == set([b('1'), b('2'), b('3')])
     l.sadd('b', '2', '3')
     assert l.sdiff('a', 'b') == set([b('1')])
Ejemplo n.º 45
0
 def test_zremrangebyrank(self):
     l.zadd('a', a1=1, a2=2, a3=3, a4=4, a5=5)
     assert l.zremrangebyrank('a', 1, 3) == 3
     assert l.zrange('a', 0, -1) == [b('a1'), b('a5')]
Ejemplo n.º 46
0
 def test_srem(self):
     l.sadd('a', '1', '2', '3', '4')
     assert l.srem('a', '5') == 0
     assert l.srem('a', '2', '4') == 2
     assert l.smembers('a') == set([b('1'), b('3')])
Ejemplo n.º 47
0
 def test_zrevrange(self):
     l.zadd('a', a1=1, a2=2, a3=3)
     assert l.zrevrange('a', 0, 1) == [b('a3'), b('a2')]
     assert l.zrevrange('a', 1, 2) == [b('a2'), b('a1')]
Ejemplo n.º 48
0
 def test_sinter(self):
     l.sadd('a', '1', '2', '3')
     assert l.sinter('a', 'b') == set()
     l.sadd('b', '2', '3')
     assert l.sinter('a', 'b') == set([b('2'), b('3')])
Ejemplo n.º 49
0
 def test_bget(self):
     "bget is the same as get in K/V commands"
     l.bmsetbit('a', 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 0)
     assert l.bget('a') == b('\x7f')
Ejemplo n.º 50
0
 def test_smembers(self):
     l.sadd('a', '1', '2', '3')
     assert l.smembers('a') == set([b('1'), b('2'), b('3')])
Ejemplo n.º 51
0
 def test_smembers(self):
     l.sadd('a', '1', '2', '3')
     assert l.smembers('a') == set([b('1'), b('2'), b('3')])
Ejemplo n.º 52
0
 def test_srem(self):
     l.sadd('a', '1', '2', '3', '4')
     assert l.srem('a', '5') == 0
     assert l.srem('a', '2', '4') == 2
     assert l.smembers('a') == set([b('1'), b('3')])
Ejemplo n.º 53
0
import socket
import sys

from ledis._compat import (b, xrange, imap, byte_to_chr, unicode, bytes, long,
                           BytesIO, nativestr, basestring, iteritems,
                           LifoQueue, Empty, Full, urlparse, parse_qs)
from ledis.exceptions import (
    LedisError,
    ConnectionError,
    BusyLoadingError,
    ResponseError,
    InvalidResponse,
    ExecAbortError,
)

SYM_STAR = b('*')
SYM_DOLLAR = b('$')
SYM_CRLF = b('\r\n')
SYM_LF = b('\n')


class PythonParser(object):
    "Plain Python parsing class"
    MAX_READ_LENGTH = 1000000
    encoding = None

    EXCEPTION_CLASSES = {
        'ERR': ResponseError,
        'EXECABORT': ExecAbortError,
        'LOADING': BusyLoadingError,
    }
Ejemplo n.º 54
0
 def test_sunion(self):
     l.sadd('a', '1', '2')
     l.sadd('b', '2', '3')
     assert l.sunion('a', 'b') == set([b('1'), b('2'), b('3')])
Ejemplo n.º 55
0
 def test_echo(self):
     assert l.echo('foo bar') == b('foo bar')
Ejemplo n.º 56
0
 def test_echo(self):
     assert l.echo('foo bar') == b('foo bar')
Ejemplo n.º 57
0
 def test_setnx(self):
     l.delete('a')
     assert l.setnx('a', '1')
     assert l['a'] == b('1')
     assert not l.setnx('a', '2')
     assert l['a'] == b('1')
Ejemplo n.º 58
0
 def test_invalid_value(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     self.assertRaises(ResponseError, lambda: l.sexpire('a', 'a'))
Ejemplo n.º 59
0
 def test_mset(self):
     d = {'a': b('1'), 'b': b('2'), 'c': b('3')}
     assert l.mset(**d)
     for k, v in iteritems(d):
         assert l[k] == v
Ejemplo n.º 60
0
 def test_sadd(self):
     members = set([b('1'), b('2'), b('3')])
     l.sadd('a', *members)
     assert l.smembers('a') == members