summaryrefslogtreecommitdiff
path: root/pymemcache/test/test_client_hash.py
diff options
context:
space:
mode:
Diffstat (limited to 'pymemcache/test/test_client_hash.py')
-rw-r--r--pymemcache/test/test_client_hash.py81
1 files changed, 56 insertions, 25 deletions
diff --git a/pymemcache/test/test_client_hash.py b/pymemcache/test/test_client_hash.py
index 4cb066f..99734dd 100644
--- a/pymemcache/test/test_client_hash.py
+++ b/pymemcache/test/test_client_hash.py
@@ -74,19 +74,50 @@ class TestHashClient(ClientTestMixin, unittest.TestCase):
],
)
- def get_clients(key):
+ def get_node(key):
if key == b"key3":
- return client.clients["/tmp/pymemcache.1.%d" % pid]
+ return "/tmp/pymemcache.1.%d" % pid
else:
- return client.clients["/tmp/pymemcache.2.%d" % pid]
+ return "/tmp/pymemcache.2.%d" % pid
- client._get_client = get_clients
+ client.hasher.get_node = get_node
result = client.set(b"key1", b"value1", noreply=False)
result = client.set(b"key3", b"value2", noreply=False)
result = client.get_many([b"key1", b"key3"])
assert result == {b"key1": b"value1", b"key3": b"value2"}
+ def test_get_many_unix_with_server_key(self):
+ pid = os.getpid()
+ sockets = [
+ "/tmp/pymemcache.1.%d" % pid,
+ "/tmp/pymemcache.2.%d" % pid,
+ ]
+ client = self.make_unix_client(
+ sockets,
+ *[
+ [
+ b"STORED\r\n",
+ b"STORED\r\n",
+ b"VALUE key1 0 6\r\nvalue1\r\nVALUE key3 0 6\r\nvalue2\r\nEND\r\n",
+ ],
+ [],
+ ],
+ )
+
+ def get_node(key):
+ if key == b"server_key":
+ return "/tmp/pymemcache.1.%d" % pid
+ else:
+ return "/tmp/pymemcache.2.%d" % pid
+
+ client.hasher.get_node = get_node
+
+ result = client.set((b"server_key", b"key1"), b"value1", noreply=False)
+ result = client.set((b"server_key", b"key3"), b"value2", noreply=False)
+ result = client.get_many([(b"server_key", b"key1"), (b"server_key", b"key3")])
+ assert result == {b"key1": b"value1", b"key3": b"value2"}
+
def test_get_many_all_found(self):
client = self.make_client(
*[
@@ -101,13 +132,13 @@ class TestHashClient(ClientTestMixin, unittest.TestCase):
]
)
- def get_clients(key):
+ def get_node(key):
if key == b"key3":
- return client.clients["127.0.0.1:11012"]
+ return "127.0.0.1:11012"
else:
- return client.clients["127.0.0.1:11013"]
+ return "127.0.0.1:11013"
- client._get_client = get_clients
+ client.hasher.get_node = get_node
result = client.set(b"key1", b"value1", noreply=False)
result = client.set(b"key3", b"value2", noreply=False)
@@ -127,13 +158,13 @@ class TestHashClient(ClientTestMixin, unittest.TestCase):
]
)
- def get_clients(key):
+ def get_node(key):
if key == b"key3":
- return client.clients["127.0.0.1:11012"]
+ return "127.0.0.1:11012"
else:
- return client.clients["127.0.0.1:11013"]
+ return "127.0.0.1:11013"
- client._get_client = get_clients
+ client.hasher.get_node = get_node
result = client.set(b"key1", b"value1", noreply=False)
result = client.get_many([b"key1", b"key3"])
@@ -153,13 +184,13 @@ class TestHashClient(ClientTestMixin, unittest.TestCase):
]
)
- def get_clients(key):
+ def get_node(key):
if key == b"key3":
- return client.clients["127.0.0.1:11012"]
+ return "127.0.0.1:11012"
else:
- return client.clients["127.0.0.1:11013"]
+ return "127.0.0.1:11013"
- client._get_client = get_clients
+ client.hasher.get_node = get_node
with pytest.raises(MemcacheUnknownError):
client.set(b"key1", b"value1", noreply=False)
@@ -181,13 +212,13 @@ class TestHashClient(ClientTestMixin, unittest.TestCase):
ignore_exc=True,
)
- def get_clients(key):
+ def get_node(key):
if key == b"key3":
- return client.clients["127.0.0.1:11012"]
+ return "127.0.0.1:11012"
else:
- return client.clients["127.0.0.1:11013"]
+ return "127.0.0.1:11013"
- client._get_client = get_clients
+ client.hasher.get_node = get_node
client.set(b"key1", b"value1", noreply=False)
client.set(b"key3", b"value2", noreply=False)
@@ -208,13 +239,13 @@ class TestHashClient(ClientTestMixin, unittest.TestCase):
]
)
- def get_clients(key):
+ def get_node(key):
if key == b"key3":
- return client.clients["127.0.0.1:11012"]
+ return "127.0.0.1:11012"
else:
- return client.clients["127.0.0.1:11013"]
+ return "127.0.0.1:11013"
- client._get_client = get_clients
+ client.hasher.get_node = get_node
assert client.set(b"key1", b"value1", noreply=False) is True
assert client.set(b"key3", b"value2", noreply=False) is True
@@ -258,7 +289,7 @@ class TestHashClient(ClientTestMixin, unittest.TestCase):
)
hashed_client = client._get_client("foo")
- assert hashed_client is None
+ assert hashed_client == (None, "foo")
def test_no_servers_left_raise_exception(self):
from pymemcache.client.hash import HashClient