| 
									
										
										
										
											2014-09-03 12:41:05 +02:00
										 |  |  | #!/usr/bin/env python | 
					
						
							|  |  |  | # coding: utf-8 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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__)))) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from test.helper import FakeYDL | 
					
						
							|  |  |  | from youtube_dl.cache import Cache | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def _is_empty(d): | 
					
						
							|  |  |  |     return not bool(os.listdir(d)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def _mkdir(d): | 
					
						
							|  |  |  |     if not os.path.exists(d): | 
					
						
							|  |  |  |         os.mkdir(d) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestCache(unittest.TestCase): | 
					
						
							|  |  |  |     def setUp(self): | 
					
						
							|  |  |  |         TEST_DIR = os.path.dirname(os.path.abspath(__file__)) | 
					
						
							|  |  |  |         TESTDATA_DIR = os.path.join(TEST_DIR, 'testdata') | 
					
						
							|  |  |  |         _mkdir(TESTDATA_DIR) | 
					
						
							|  |  |  |         self.test_dir = os.path.join(TESTDATA_DIR, 'cache_test') | 
					
						
							|  |  |  |         self.tearDown() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tearDown(self): | 
					
						
							|  |  |  |         if os.path.exists(self.test_dir): | 
					
						
							|  |  |  |             shutil.rmtree(self.test_dir) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_cache(self): | 
					
						
							|  |  |  |         ydl = FakeYDL({ | 
					
						
							|  |  |  |             'cachedir': self.test_dir, | 
					
						
							|  |  |  |         }) | 
					
						
							|  |  |  |         c = Cache(ydl) | 
					
						
							|  |  |  |         obj = {'x': 1, 'y': ['ä', '\\a', True]} | 
					
						
							| 
									
										
										
										
											2014-09-04 04:51:52 +02:00
										 |  |  |         self.assertEqual(c.load('test_cache', 'k.'), None) | 
					
						
							|  |  |  |         c.store('test_cache', 'k.', obj) | 
					
						
							| 
									
										
										
										
											2014-09-03 12:41:05 +02:00
										 |  |  |         self.assertEqual(c.load('test_cache', 'k2'), None) | 
					
						
							|  |  |  |         self.assertFalse(_is_empty(self.test_dir)) | 
					
						
							| 
									
										
										
										
											2014-09-04 04:51:52 +02:00
										 |  |  |         self.assertEqual(c.load('test_cache', 'k.'), obj) | 
					
						
							| 
									
										
										
										
											2014-09-03 12:41:05 +02:00
										 |  |  |         self.assertEqual(c.load('test_cache', 'y'), None) | 
					
						
							| 
									
										
										
										
											2014-09-04 04:51:52 +02:00
										 |  |  |         self.assertEqual(c.load('test_cache2', 'k.'), None) | 
					
						
							| 
									
										
										
										
											2014-09-03 12:41:05 +02:00
										 |  |  |         c.remove() | 
					
						
							|  |  |  |         self.assertFalse(os.path.exists(self.test_dir)) | 
					
						
							| 
									
										
										
										
											2014-09-04 04:51:52 +02:00
										 |  |  |         self.assertEqual(c.load('test_cache', 'k.'), None) | 
					
						
							| 
									
										
										
										
											2014-09-03 12:41:05 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     unittest.main() |