From a675c853996db895015ea9d39333ff36346d5734 Mon Sep 17 00:00:00 2001 From: David Lord Date: Sun, 9 Jul 2017 08:39:25 -0700 Subject: [PATCH] rewrite tests to match usage --- tests/test_bytecode_cache.py | 77 +++++++++++++++++------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/tests/test_bytecode_cache.py b/tests/test_bytecode_cache.py index 126cf4fa..caef36b0 100644 --- a/tests/test_bytecode_cache.py +++ b/tests/test_bytecode_cache.py @@ -8,10 +8,12 @@ :copyright: (c) 2017 by the Jinja Team. :license: BSD, see LICENSE for more details. """ + import pytest + from jinja2 import Environment -from jinja2.bccache import FileSystemBytecodeCache, MemcachedBytecodeCache,\ - Bucket +from jinja2.bccache import Bucket, FileSystemBytecodeCache, \ + MemcachedBytecodeCache from jinja2.exceptions import TemplateNotFound @@ -34,62 +36,57 @@ class TestByteCodeCache(object): class MockMemcached(object): + class Error(Exception): + pass + + key = None + value = None + timeout = None def get(self, key): - return "value" + return self.value - def set(self, *args): - pass + def set(self, key, value, timeout=None): + self.key = key + self.value = value + self.timeout = timeout def get_side_effect(self, key): - raise Exception() + raise self.Error() def set_side_effect(self, *args): - raise Exception() + raise self.Error() class TestMemcachedBytecodeCache(object): + def test_dump_load(self): + memcached = MockMemcached() + m = MemcachedBytecodeCache(memcached) - def test_load_bytecode(self): - - # Python 2.X does not have explicit bytes type and Python 3.X's - # str type does not support Buffer interface - try: - key = bytes("key", "utf-8") # PY 3.X - except: - key = "key" # PY 2.X + b = Bucket(None, 'key', '') + b.code = 'code' + m.dump_bytecode(b) + assert memcached.key == 'jinja2/bytecode/key' - m = MemcachedBytecodeCache(MockMemcached()) - b = Bucket("", key, "") + b = Bucket(None, 'key', '') m.load_bytecode(b) + assert b.code == 'code' - def test_load_bytecode_exception(self): + def test_exception(self): memcached = MockMemcached() memcached.get = memcached.get_side_effect + memcached.set = memcached.set_side_effect m = MemcachedBytecodeCache(memcached) - b = Bucket("", "key", "") - m.load_bytecode(b) + b = Bucket(None, 'key', '') + b.code = 'code' - def test_load_bytecode_exception_raise(self): - memcached = MockMemcached() - memcached.get = memcached.get_side_effect - m = MemcachedBytecodeCache(memcached, ignore_memcache_errors=False) - b = Bucket("", "key", "") - with pytest.raises(Exception): - m.load_bytecode(b) - - def test_dump_bytecode(self): - memcached = MockMemcached() - m = MemcachedBytecodeCache(memcached, timeout=10) - b = Bucket("", "key", "") - b.code = "code" m.dump_bytecode(b) + m.load_bytecode(b) - def test_dump_bytecode_exception_raise(self): - memcached = MockMemcached() - memcached.set = memcached.set_side_effect - m = MemcachedBytecodeCache(memcached, ignore_memcache_errors=False) - b = Bucket("", "key", "") - b.code = "code" - with pytest.raises(Exception): + m.ignore_memcache_errors = False + + with pytest.raises(MockMemcached.Error): m.dump_bytecode(b) + + with pytest.raises(MockMemcached.Error): + m.load_bytecode(b) -- 2.47.2