diff options
| author | 2020-06-01 23:11:37 -0400 | |
|---|---|---|
| committer | 2020-06-01 23:11:37 -0400 | |
| commit | a70a3246927b72f1ded37acd55ee719515441b5b (patch) | |
| tree | 57f0d3ab0b1387b665325f42a24b8aab63cbce07 /test/test_cache.py | |
| parent | 90e50db2e3c38f523bb5195d295290b06e5cedb0 (diff) | |
New upstream version 1.14.0.upstream/1.14.0
Diffstat (limited to 'test/test_cache.py')
| -rw-r--r-- | test/test_cache.py | 58 |
1 files changed, 38 insertions, 20 deletions
diff --git a/test/test_cache.py b/test/test_cache.py index e19896e..ecf482c 100644 --- a/test/test_cache.py +++ b/test/test_cache.py @@ -10,8 +10,8 @@ import os import sys import unittest +from unittest.mock import patch -import time import tempfile sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) @@ -22,8 +22,8 @@ config.set(("cache",), "file", dbpath) from gallery_dl import cache # noqa E402 -def tearDownModule(): - util.remove_file(dbpath) +# def tearDownModule(): +# util.remove_file(dbpath) class TestCache(unittest.TestCase): @@ -86,32 +86,50 @@ class TestCache(unittest.TestCase): self.assertEqual(ka(9, 9, 2), 6) def test_expires_mem(self): - @cache.memcache(maxage=1) + @cache.memcache(maxage=2) def ex(a, b, c): return a+b+c - self.assertEqual(ex(1, 1, 1), 3) - self.assertEqual(ex(2, 2, 2), 3) - self.assertEqual(ex(3, 3, 3), 3) + with patch("time.time") as tmock: + tmock.return_value = 0.001 + self.assertEqual(ex(1, 1, 1), 3) + self.assertEqual(ex(2, 2, 2), 3) + self.assertEqual(ex(3, 3, 3), 3) - time.sleep(2) - self.assertEqual(ex(3, 3, 3), 9) - self.assertEqual(ex(2, 2, 2), 9) - self.assertEqual(ex(1, 1, 1), 9) + # value is still cached after 1 second + tmock.return_value += 1.0 + self.assertEqual(ex(3, 3, 3), 3) + self.assertEqual(ex(2, 2, 2), 3) + self.assertEqual(ex(1, 1, 1), 3) + + # new value after 'maxage' seconds + tmock.return_value += 1.0 + self.assertEqual(ex(3, 3, 3), 9) + self.assertEqual(ex(2, 2, 2), 9) + self.assertEqual(ex(1, 1, 1), 9) def test_expires_db(self): - @cache.cache(maxage=1) + @cache.cache(maxage=2) def ex(a, b, c): return a+b+c - self.assertEqual(ex(1, 1, 1), 3) - self.assertEqual(ex(2, 2, 2), 3) - self.assertEqual(ex(3, 3, 3), 3) - - time.sleep(2) - self.assertEqual(ex(3, 3, 3), 9) - self.assertEqual(ex(2, 2, 2), 9) - self.assertEqual(ex(1, 1, 1), 9) + with patch("time.time") as tmock: + tmock.return_value = 0.999 + self.assertEqual(ex(1, 1, 1), 3) + self.assertEqual(ex(2, 2, 2), 3) + self.assertEqual(ex(3, 3, 3), 3) + + # value is still cached after 1 second + tmock.return_value += 1.0 + self.assertEqual(ex(3, 3, 3), 3) + self.assertEqual(ex(2, 2, 2), 3) + self.assertEqual(ex(1, 1, 1), 3) + + # new value after 'maxage' seconds + tmock.return_value += 1.0 + self.assertEqual(ex(3, 3, 3), 9) + self.assertEqual(ex(2, 2, 2), 9) + self.assertEqual(ex(1, 1, 1), 9) def test_update_mem_simple(self): @cache.memcache(keyarg=0) |
