about summary refs log tree commit diff
path: root/test
diff options
context:
space:
mode:
authordirkf <fieldhouse@gmx.net>2022-09-01 13:28:30 +0100
committerdirkf <fieldhouse@gmx.net>2022-09-01 13:28:30 +0100
commit218c423bc042674a8834ffc09520a94fbbe7b138 (patch)
treec3d3cedf62212ff69399c712b5edd8ac503e9959 /test
parent55c823634db890a328ffc23588fcd6f35d9b3ddf (diff)
downloadyoutube-dl-218c423bc042674a8834ffc09520a94fbbe7b138.tar.gz
youtube-dl-218c423bc042674a8834ffc09520a94fbbe7b138.tar.xz
youtube-dl-218c423bc042674a8834ffc09520a94fbbe7b138.zip
[cache] Add cache validation by program version, based on yt-dlp
Diffstat (limited to 'test')
-rw-r--r--test/test_cache.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/test/test_cache.py b/test/test_cache.py
index a16160142..931074aa1 100644
--- a/test/test_cache.py
+++ b/test/test_cache.py
@@ -3,17 +3,18 @@
 
 from __future__ import unicode_literals
 
-import shutil
-
 # Allow direct execution
 import os
 import sys
 import unittest
 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 
+import shutil
 
 from test.helper import FakeYDL
 from youtube_dl.cache import Cache
+from youtube_dl.utils import version_tuple
+from youtube_dl.version import __version__
 
 
 def _is_empty(d):
@@ -54,6 +55,17 @@ class TestCache(unittest.TestCase):
         self.assertFalse(os.path.exists(self.test_dir))
         self.assertEqual(c.load('test_cache', 'k.'), None)
 
+    def test_cache_validation(self):
+        ydl = FakeYDL({
+            'cachedir': self.test_dir,
+        })
+        c = Cache(ydl)
+        obj = {'x': 1, 'y': ['รค', '\\a', True]}
+        c.store('test_cache', 'k.', obj)
+        self.assertEqual(c.load('test_cache', 'k.', min_ver='1970.01.01'), obj)
+        new_version = '.'.join(('%d' % ((v + 1) if i == 0 else v, )) for i, v in enumerate(version_tuple(__version__)))
+        self.assertIs(c.load('test_cache', 'k.', min_ver=new_version), None)
+
 
 if __name__ == '__main__':
     unittest.main()