]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
rewrite tests to match usage 672/head
authorDavid Lord <davidism@gmail.com>
Sun, 9 Jul 2017 15:39:25 +0000 (08:39 -0700)
committerDavid Lord <davidism@gmail.com>
Sun, 9 Jul 2017 15:45:13 +0000 (08:45 -0700)
tests/test_bytecode_cache.py

index 126cf4fa4d51a465f9d1110598137d3eaa577413..caef36b042d7571d91ac743e9d0141785b620d13 100644 (file)
@@ -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)