mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	Fix lazy extractor bug in fe7866d0ed
				
					
				
			and add test Fixes https://github.com/yt-dlp/yt-dlp/pull/3234#issuecomment-1225347071
This commit is contained in:
		| @@ -11,41 +11,46 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
| import contextlib | ||||
| import subprocess | ||||
| 
 | ||||
| from yt_dlp.utils import encodeArgument | ||||
| from yt_dlp.utils import Popen | ||||
| 
 | ||||
| rootDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | ||||
| 
 | ||||
| 
 | ||||
| try: | ||||
|     _DEV_NULL = subprocess.DEVNULL | ||||
| except AttributeError: | ||||
|     _DEV_NULL = open(os.devnull, 'wb') | ||||
| LAZY_EXTRACTORS = 'yt_dlp/extractor/lazy_extractors.py' | ||||
| 
 | ||||
| 
 | ||||
| class TestExecution(unittest.TestCase): | ||||
|     def test_import(self): | ||||
|         subprocess.check_call([sys.executable, '-c', 'import yt_dlp'], cwd=rootDir) | ||||
| 
 | ||||
|     def test_module_exec(self): | ||||
|         subprocess.check_call([sys.executable, '-m', 'yt_dlp', '--ignore-config', '--version'], cwd=rootDir, stdout=_DEV_NULL) | ||||
|     def run_yt_dlp(self, exe=(sys.executable, 'yt_dlp/__main__.py'), opts=('--version', )): | ||||
|         stdout, stderr, returncode = Popen.run( | ||||
|             [*exe, '--ignore-config', *opts], cwd=rootDir, text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) | ||||
|         print(stderr, file=sys.stderr) | ||||
|         self.assertEqual(returncode, 0) | ||||
|         return stdout.strip(), stderr.strip() | ||||
| 
 | ||||
|     def test_main_exec(self): | ||||
|         subprocess.check_call([sys.executable, 'yt_dlp/__main__.py', '--ignore-config', '--version'], cwd=rootDir, stdout=_DEV_NULL) | ||||
|         self.run_yt_dlp() | ||||
| 
 | ||||
|     def test_import(self): | ||||
|         self.run_yt_dlp(exe=(sys.executable, '-c', 'import yt_dlp')) | ||||
| 
 | ||||
|     def test_module_exec(self): | ||||
|         self.run_yt_dlp(exe=(sys.executable, '-m', 'yt_dlp')) | ||||
| 
 | ||||
|     def test_cmdline_umlauts(self): | ||||
|         p = subprocess.Popen( | ||||
|             [sys.executable, 'yt_dlp/__main__.py', '--ignore-config', encodeArgument('ä'), '--version'], | ||||
|             cwd=rootDir, stdout=_DEV_NULL, stderr=subprocess.PIPE) | ||||
|         _, stderr = p.communicate() | ||||
|         _, stderr = self.run_yt_dlp(opts=('ä', '--version')) | ||||
|         self.assertFalse(stderr) | ||||
| 
 | ||||
|     def test_lazy_extractors(self): | ||||
|         try: | ||||
|             subprocess.check_call([sys.executable, 'devscripts/make_lazy_extractors.py', 'yt_dlp/extractor/lazy_extractors.py'], cwd=rootDir, stdout=_DEV_NULL) | ||||
|             subprocess.check_call([sys.executable, 'test/test_all_urls.py'], cwd=rootDir, stdout=_DEV_NULL) | ||||
|             subprocess.check_call([sys.executable, 'devscripts/make_lazy_extractors.py', LAZY_EXTRACTORS], | ||||
|                                   cwd=rootDir, stdout=subprocess.DEVNULL) | ||||
|             self.assertTrue(os.path.exists(LAZY_EXTRACTORS)) | ||||
| 
 | ||||
|             _, stderr = self.run_yt_dlp(opts=('-s', 'test:')) | ||||
|             self.assertFalse(stderr) | ||||
| 
 | ||||
|             subprocess.check_call([sys.executable, 'test/test_all_urls.py'], cwd=rootDir, stdout=subprocess.DEVNULL) | ||||
|         finally: | ||||
|             with contextlib.suppress(OSError): | ||||
|                 os.remove('yt_dlp/extractor/lazy_extractors.py') | ||||
|                 os.remove(LAZY_EXTRACTORS) | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan