The Python dictionary-based mock memcached client library.
Project description
The Python dictionary-based mock memcached client library. It does not connect to any memcached server, but keeps a dictionary and stores every cache into there internally. It is a just emulated API of memcached client only for tests. It implements expiration also. NOT THREAD-SAFE.
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"])
This module and other memcached client libraries have the same behavior.
>>> 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 > ...
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mockcache-1.0.3.tar.gz
(4.7 kB
view hashes)