114 lines
2.5 KiB
Python
114 lines
2.5 KiB
Python
|
import pytest
|
||
|
|
||
|
from pymemcache.test.utils import MockMemcacheClient
|
||
|
|
||
|
|
||
|
@pytest.mark.unit()
|
||
|
def test_get_set():
|
||
|
client = MockMemcacheClient()
|
||
|
assert client.get(b"hello") is None
|
||
|
|
||
|
client.set(b"hello", 12)
|
||
|
assert client.get(b"hello") == 12
|
||
|
|
||
|
|
||
|
@pytest.mark.unit()
|
||
|
def test_get_set_unicide_key():
|
||
|
client = MockMemcacheClient()
|
||
|
assert client.get("hello") is None
|
||
|
|
||
|
client.set(b"hello", 12)
|
||
|
assert client.get("hello") == 12
|
||
|
|
||
|
|
||
|
@pytest.mark.unit()
|
||
|
def test_get_set_non_ascii_value():
|
||
|
client = MockMemcacheClient()
|
||
|
assert client.get(b"hello") is None
|
||
|
|
||
|
# This is the value of msgpack.packb('non_ascii')
|
||
|
non_ascii_str = b"\xa9non_ascii"
|
||
|
client.set(b"hello", non_ascii_str)
|
||
|
assert client.get(b"hello") == non_ascii_str
|
||
|
|
||
|
|
||
|
@pytest.mark.unit()
|
||
|
def test_get_many_set_many():
|
||
|
client = MockMemcacheClient()
|
||
|
client.set(b"h", 1)
|
||
|
|
||
|
result = client.get_many([b"h", b"e", b"l", b"o"])
|
||
|
assert result == {b"h": 1}
|
||
|
|
||
|
# Convert keys into bytes
|
||
|
d = {k.encode("ascii"): v for k, v in dict(h=1, e=2, z=3).items()}
|
||
|
client.set_many(d)
|
||
|
assert client.get_many([b"h", b"e", b"z", b"o"]) == d
|
||
|
|
||
|
|
||
|
@pytest.mark.unit()
|
||
|
def test_get_many_set_many_non_ascii_values():
|
||
|
client = MockMemcacheClient()
|
||
|
|
||
|
# These are the values of calling msgpack.packb() on '1', '2', and '3'
|
||
|
non_ascii_1 = b"\xa11"
|
||
|
non_ascii_2 = b"\xa12"
|
||
|
non_ascii_3 = b"\xa13"
|
||
|
client.set(b"h", non_ascii_1)
|
||
|
|
||
|
result = client.get_many([b"h", b"e", b"l", b"o"])
|
||
|
assert result == {b"h": non_ascii_1}
|
||
|
|
||
|
# Convert keys into bytes
|
||
|
d = {
|
||
|
k.encode("ascii"): v
|
||
|
for k, v in dict(h=non_ascii_1, e=non_ascii_2, z=non_ascii_3).items()
|
||
|
}
|
||
|
client.set_many(d)
|
||
|
assert client.get_many([b"h", b"e", b"z", b"o"]) == d
|
||
|
|
||
|
|
||
|
@pytest.mark.unit()
|
||
|
def test_add():
|
||
|
client = MockMemcacheClient()
|
||
|
|
||
|
client.add(b"k", 2)
|
||
|
assert client.get(b"k") == 2
|
||
|
|
||
|
client.add(b"k", 25)
|
||
|
assert client.get(b"k") == 2
|
||
|
|
||
|
|
||
|
@pytest.mark.unit()
|
||
|
def test_delete():
|
||
|
client = MockMemcacheClient()
|
||
|
|
||
|
client.add(b"k", 2)
|
||
|
assert client.get(b"k") == 2
|
||
|
|
||
|
client.delete(b"k")
|
||
|
assert client.get(b"k") is None
|
||
|
|
||
|
|
||
|
@pytest.mark.unit()
|
||
|
def test_incr_decr():
|
||
|
client = MockMemcacheClient()
|
||
|
|
||
|
client.add(b"k", 2)
|
||
|
|
||
|
client.incr(b"k", 4)
|
||
|
assert client.get(b"k") == 6
|
||
|
|
||
|
client.decr(b"k", 2)
|
||
|
assert client.get(b"k") == 4
|
||
|
|
||
|
|
||
|
@pytest.mark.unit()
|
||
|
def test_prepand_append():
|
||
|
client = MockMemcacheClient()
|
||
|
|
||
|
client.set(b"k", "1")
|
||
|
client.append(b"k", "a")
|
||
|
client.prepend(b"k", "p")
|
||
|
assert client.get(b"k") == b"p1a"
|