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 details)
File details
Details for the file mockcache-1.0.3.tar.gz
.
File metadata
- Download URL: mockcache-1.0.3.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c637c35eaf0322f6c5fa6875a3fc5dc756514585a8b77abe4482d69bf364196d |
|
MD5 | 18e266040d9203117daad327bd4a3826 |
|
BLAKE2b-256 | 8f8d45e8a33605593796552cfc67b186539da9318f7f4fd40834d427a3537e6d |