基于Python字典的mock memcached客户端库。
项目描述
基于Python字典的mock memcached客户端库。它不会连接到任何memcached服务器,但内部维护一个字典并存储每个缓存。它仅为测试而提供的memcached客户端的模拟API。它还实现了过期功能。不保证线程安全。
try: import memcache except ImportError: import warnings import mockcache as memcache warnings.warn("imported mockcache instead of memcache; cannot find " "memcache module") mc = memcache.Client(["127.0.0.1:11211"])
此模块和其他memcached客户端库具有相同的行为。
>>> from mockcache import Client >>> mc = Client() >>> mc <mockcache.Client {}> >>> mc.get("a") >>> mc.get("a") is None True >>> mc.set("a", "1234") 1 >>> mc.get("a") '1234' >>> mc <mockcache.Client {'a': ('1234', None)}> >>> mc.add("a", "1111") 0 >>> mc.get("a") '1234' >>> mc <mockcache.Client {'a': ('1234', None)}> >>> mc.replace("a", "2222") 1 >>> mc.get("a") '2222' >>> mc <mockcache.Client {'a': ('2222', None)}> >>> mc.append("a", "3") 1 >>> mc.get("a") '22223' >>> mc <mockcache.Client {'a': ('22223', None)}> >>> mc.prepend("a", "1") 1 >>> mc.get("a") '122223' >>> mc <mockcache.Client {'a': ('122223', None)}> >>> mc.incr("a") 122224 >>> mc.get("a") 122224 >>> mc <mockcache.Client {'a': (122224, None)}> >>> mc.incr("a", 10) 122234 >>> mc.get("a") 122234 >>> mc <mockcache.Client {'a': (122234, None)}> >>> mc.decr("a") 122233 >>> mc.get("a") 122233 >>> mc <mockcache.Client {'a': (122233, None)}> >>> mc.decr("a", 5) 122228 >>> mc.get("a") 122228 >>> mc <mockcache.Client {'a': (122228, None)}> >>> mc.replace("b", "value") 0 >>> mc.get("b") >>> mc.get("b") is None True >>> mc <mockcache.Client {'a': (122228, None)}> >>> mc.add("b", "value", 5) 1 >>> mc.get("b") 'value' >>> mc # doctest: +ELLIPSIS <mockcache.Client {'a': (122228, None), 'b': ('value', ...)}> >>> import time >>> time.sleep(6) >>> mc.get("b") >>> mc.get("b") is None True >>> mc <mockcache.Client {'a': (122228, None)}> >>> mc.set("c", "value") 1 >>> mc.get_multi(["a", "b", "c"]) {'a': 122228, 'c': 'value'} >>> mc.set_multi({"a": 999, "b": 998, "c": 997}, key_prefix="pf_") [] >>> mc.get("pf_a") 999 >>> multi_result = mc.get_multi(["b", "c"], key_prefix="pf_") >>> multi_result["b"] 998 >>> multi_result["c"] 997 >>> mc.delete("a") 1 >>> mc.get("a") is None True >>> mc.set("a b c", 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedKeyCharacterError: Control characters not allowed >>> mc.set(None, 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedKeyNoneError: Key is None >>> mc.set(123, 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedKeyTypeError: Key must be str()'s >>> mc.set(u"a", 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedStringEncodingError: Key must be str()'s, not unicode. >>> mc.set("a" * 251, 123) #doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): MockcachedKeyLengthError: Key length is > ...
项目详情
关闭
mockcache-1.0.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 哈希值:c637c35eaf0322f6c5fa6875a3fc5dc756514585a8b77abe4482d69bf364196d |
|
MD5 | 哈希值:18e266040d9203117daad327bd4a3826 |
|
BLAKE2b-256 | 哈希值:8f8d45e8a33605593796552cfc67b186539da9318f7f4fd40834d427a3537e6d |