From df9615bac55ac6f1c3f516b66279ac0007175030 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 19 Mar 2020 15:00:14 +0100 Subject: Adding upstream version 0.13.1. Signed-off-by: Daniel Baumann --- gitlint/tests/test_cache.py | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 gitlint/tests/test_cache.py (limited to 'gitlint/tests/test_cache.py') diff --git a/gitlint/tests/test_cache.py b/gitlint/tests/test_cache.py new file mode 100644 index 0000000..5d78953 --- /dev/null +++ b/gitlint/tests/test_cache.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +from gitlint.tests.base import BaseTestCase +from gitlint.cache import PropertyCache, cache + + +class CacheTests(BaseTestCase): + + class MyClass(PropertyCache): + """ Simple class that has cached properties, used for testing. """ + + def __init__(self): + PropertyCache.__init__(self) + self.counter = 0 + + @property + @cache + def foo(self): + self.counter += 1 + return u"bår" + + @property + @cache(cachekey=u"hür") + def bar(self): + self.counter += 1 + return u"fōo" + + def test_cache(self): + # Init new class with cached properties + myclass = self.MyClass() + self.assertEqual(myclass.counter, 0) + self.assertDictEqual(myclass._cache, {}) + + # Assert that function is called on first access, cache is set + self.assertEqual(myclass.foo, u"bår") + self.assertEqual(myclass.counter, 1) + self.assertDictEqual(myclass._cache, {"foo": u"bår"}) + + # After function is not called on subsequent access, cache is still set + self.assertEqual(myclass.foo, u"bår") + self.assertEqual(myclass.counter, 1) + self.assertDictEqual(myclass._cache, {"foo": u"bår"}) + + def test_cache_custom_key(self): + # Init new class with cached properties + myclass = self.MyClass() + self.assertEqual(myclass.counter, 0) + self.assertDictEqual(myclass._cache, {}) + + # Assert that function is called on first access, cache is set with custom key + self.assertEqual(myclass.bar, u"fōo") + self.assertEqual(myclass.counter, 1) + self.assertDictEqual(myclass._cache, {u"hür": u"fōo"}) + + # After function is not called on subsequent access, cache is still set + self.assertEqual(myclass.bar, u"fōo") + self.assertEqual(myclass.counter, 1) + self.assertDictEqual(myclass._cache, {u"hür": u"fōo"}) -- cgit v1.2.3