impuls/lib/python3.11/site-packages/pymemcache/test/test_utils.py
2023-11-06 16:54:45 +01:00

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"