aboutsummaryrefslogtreecommitdiff
path: root/server/szurubooru/tests/search/test_executor.py
diff options
context:
space:
mode:
authorrr-2016-06-03 15:51:50 +0200
committerrr-2016-06-03 19:47:09 +0200
commit8a5c6f0b31cfa0bc52a55a0ba42050ff6c67d04c (patch)
tree243e5f4452b1a1f5625f6ec7e5bc02b329b2a8ea /server/szurubooru/tests/search/test_executor.py
parentf0d3589344345f41ebf5593231287a923be45dbb (diff)
server/search: fix caching special tokens
special:liked was being reused between users. Now the cache internally caches object similar to liked:USER.
Diffstat (limited to 'server/szurubooru/tests/search/test_executor.py')
-rw-r--r--server/szurubooru/tests/search/test_executor.py35
1 files changed, 33 insertions, 2 deletions
diff --git a/server/szurubooru/tests/search/test_executor.py b/server/szurubooru/tests/search/test_executor.py
index bb1cb51..99e085f 100644
--- a/server/szurubooru/tests/search/test_executor.py
+++ b/server/szurubooru/tests/search/test_executor.py
@@ -1,4 +1,5 @@
import unittest.mock
+import pytest
from szurubooru import search
from szurubooru.func import cache
@@ -11,7 +12,7 @@ def test_retrieving_from_cache(user_factory):
executor.execute('test:whatever', 1, 10)
assert cache.get.called
-def test_putting_equivalent_queries_into_cache(user_factory):
+def test_putting_equivalent_queries_into_cache():
config = search.configs.PostSearchConfig()
with unittest.mock.patch('szurubooru.func.cache.has'), \
unittest.mock.patch('szurubooru.func.cache.put'):
@@ -30,7 +31,7 @@ def test_putting_equivalent_queries_into_cache(user_factory):
assert len(hashes) == 6
assert len(set(hashes)) == 1
-def test_putting_non_equivalent_queries_into_cache(user_factory):
+def test_putting_non_equivalent_queries_into_cache():
config = search.configs.PostSearchConfig()
with unittest.mock.patch('szurubooru.func.cache.has'), \
unittest.mock.patch('szurubooru.func.cache.put'):
@@ -82,3 +83,33 @@ def test_putting_non_equivalent_queries_into_cache(user_factory):
executor.execute(*arg)
assert len(hashes) == len(args)
assert len(set(hashes)) == len(args)
+
+@pytest.mark.parametrize('input', [
+ 'special:fav',
+ 'special:liked',
+ 'special:disliked',
+ '-special:fav',
+ '-special:liked',
+ '-special:disliked',
+])
+def test_putting_auth_dependent_queries_into_cache(user_factory, input):
+ config = search.configs.PostSearchConfig()
+ with unittest.mock.patch('szurubooru.func.cache.has'), \
+ unittest.mock.patch('szurubooru.func.cache.put'):
+ hashes = []
+ def appender(key, value):
+ hashes.append(key)
+ cache.has.side_effect = lambda *args: False
+ cache.put.side_effect = appender
+ executor = search.Executor(config)
+
+ executor.config.user = user_factory()
+ executor.execute(input, 1, 1)
+ assert len(set(hashes)) == 1
+
+ executor.config.user = user_factory()
+ executor.execute(input, 1, 1)
+ assert len(set(hashes)) == 2
+
+ executor.execute(input, 1, 1)
+ assert len(set(hashes)) == 2

© 2015 - 2026 Jakob L. Kreuze