1
0
Fork 0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-03-09 12:50:23 -05:00

Get tests working

This commit is contained in:
coletdjnz 2025-02-07 12:34:21 +13:00
parent 93aa21b3b2
commit 74050a8dff
No known key found for this signature in database
GPG key ID: 91984263BB39894A
2 changed files with 18 additions and 23 deletions

View file

@ -17,10 +17,7 @@
load_plugins,
load_all_plugins,
register_plugin_spec,
set_plugin_dirs,
disable_plugins,
add_plugin_dirs,
get_plugin_spec,
)
from yt_dlp.globals import (
@ -31,7 +28,6 @@
plugin_pps,
all_plugins_loaded,
plugin_specs,
plugins_enabled,
)
from yt_dlp.utils import YoutubeDLError
@ -58,7 +54,6 @@ def reset_plugins():
plugin_dirs.value = ['default']
plugin_specs.value = {}
all_plugins_loaded.value = False
plugins_enabled.value = True
# Clearing override plugins is probably difficult
for module_name in tuple(sys.modules):
for plugin_type in ('extractor', 'postprocessor'):
@ -205,28 +200,35 @@ def test_load_all_plugin_types(self):
self.assertIn(f'{PACKAGE_NAME}.extractor.normal', sys.modules.keys())
self.assertIn(f'{PACKAGE_NAME}.postprocessor.normal', sys.modules.keys())
def test_no_plugin_dirs(self):
register_plugin_spec(EXTRACTOR_PLUGIN_SPEC)
register_plugin_spec(POSTPROCESSOR_PLUGIN_SPEC)
plugin_dirs.value = []
load_all_plugins()
self.assertNotIn(f'{PACKAGE_NAME}.extractor.normal', sys.modules.keys())
self.assertNotIn(f'{PACKAGE_NAME}.postprocessor.normal', sys.modules.keys())
def test_set_plugin_dirs(self):
custom_plugin_dir = str(TEST_DATA_DIR / 'plugin_packages')
set_plugin_dirs(custom_plugin_dir)
plugin_dirs.value = [custom_plugin_dir]
self.assertEqual(plugin_dirs.value, [custom_plugin_dir])
self.assertNotIn('default', plugin_dirs.value)
load_plugins(EXTRACTOR_PLUGIN_SPEC)
self.assertIn(f'{PACKAGE_NAME}.extractor.package', sys.modules.keys())
self.assertIn('PackagePluginIE', plugin_ies.value)
def test_invalid_plugin_dir(self):
set_plugin_dirs('invalid_dir')
plugin_dirs.value = ['invalid_dir']
with self.assertRaises(ValueError):
load_plugins(EXTRACTOR_PLUGIN_SPEC)
def test_add_plugin_dirs(self):
def test_append_plugin_dirs(self):
custom_plugin_dir = str(TEST_DATA_DIR / 'plugin_packages')
self.assertEqual(plugin_dirs.value, ['default'])
add_plugin_dirs(custom_plugin_dir)
plugin_dirs.value.append(custom_plugin_dir)
self.assertEqual(plugin_dirs.value, ['default', custom_plugin_dir])
load_plugins(EXTRACTOR_PLUGIN_SPEC)
@ -254,8 +256,6 @@ def test_disable_plugins_already_loaded(self):
with self.assertRaises(YoutubeDLError):
disable_plugins()
self.assertTrue(plugins_enabled.value)
ies = load_plugins(EXTRACTOR_PLUGIN_SPEC)
self.assertIn('NormalPluginIE', ies)
@ -263,9 +263,9 @@ def test_get_plugin_spec(self):
register_plugin_spec(EXTRACTOR_PLUGIN_SPEC)
register_plugin_spec(POSTPROCESSOR_PLUGIN_SPEC)
self.assertEqual(get_plugin_spec('extractor'), EXTRACTOR_PLUGIN_SPEC)
self.assertEqual(get_plugin_spec('postprocessor'), POSTPROCESSOR_PLUGIN_SPEC)
self.assertIsNone(get_plugin_spec('invalid'))
self.assertEqual(plugin_specs.value.get('extractor'), EXTRACTOR_PLUGIN_SPEC)
self.assertEqual(plugin_specs.value.get('postprocessor'), POSTPROCESSOR_PLUGIN_SPEC)
self.assertIsNone(plugin_specs.value.get('invalid'))
if __name__ == '__main__':

View file

@ -104,11 +104,7 @@ def _get_package_paths(*root_paths, containing_folder):
containing_folder='yt-dlp-plugins',
)
yield from internal_plugin_paths()
def internal_plugin_paths():
# Always try load from PYTHONPATH folders
# Always try load from PYTHONPATH directories
yield from (path for path in map(Path, sys.path) if path != _BASE_PACKAGE_PATH)
@ -136,7 +132,6 @@ def __init__(self, *packages):
)
def search_locations(self, fullname):
candidate_locations = itertools.chain.from_iterable(
default_plugin_paths() if candidate == 'default' else candidate_plugin_paths(candidate)
for candidate in plugin_dirs.value