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:
parent
93aa21b3b2
commit
74050a8dff
2 changed files with 18 additions and 23 deletions
|
@ -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__':
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue