1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-06-27 17:08:32 +00:00
This commit is contained in:
N/Ame 2025-06-20 21:49:38 +02:00 committed by GitHub
commit ccabd9dfbd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 3 deletions

View File

@ -19,12 +19,14 @@ def parse_args():
'test', help='an extractor test, test path, or one of "core" or "download"', nargs='*')
parser.add_argument(
'-k', help='run a test matching EXPRESSION. Same as "pytest -k"', metavar='EXPRESSION')
parser.add_argument(
'--plugins', help='load plugins', action='store_true')
parser.add_argument(
'--pytest-args', help='arguments to passthrough to pytest')
return parser.parse_args()
def run_tests(*tests, pattern=None, ci=False):
def run_tests(*tests, pattern=None, ci=False, load_plugins=False):
# XXX: hatch uses `tests` if no arguments are passed
run_core = 'core' in tests or 'tests' in tests or (not pattern and not tests)
run_download = 'download' in tests
@ -47,7 +49,10 @@ def run_tests(*tests, pattern=None, ci=False):
print(f'Running {arguments}', flush=True)
try:
return subprocess.call(arguments)
return subprocess.call(arguments, env={
**os.environ,
'YTDLP_NO_PLUGINS': '1' if os.environ.get('YTDLP_NO_PLUGINS') or not load_plugins else '',
})
except FileNotFoundError:
pass
@ -72,6 +77,6 @@ def run_tests(*tests, pattern=None, ci=False):
args = parse_args()
os.chdir(Path(__file__).parent.parent)
sys.exit(run_tests(*args.test, pattern=args.k, ci=bool(os.getenv('CI'))))
sys.exit(run_tests(*args.test, pattern=args.k, ci=bool(os.getenv('CI')), load_plugins=args.plugins))
except KeyboardInterrupt:
pass

View File

@ -1,6 +1,7 @@
import errno
import hashlib
import json
import os
import os.path
import re
import ssl
@ -87,6 +88,9 @@ def report_warning(self, message, *args, **kwargs):
def gettestcases(include_onlymatching=False):
if not os.environ.get('YTDLP_NO_PLUGINS'):
import yt_dlp.plugins as plugins
plugins.load_all_plugins()
for ie in yt_dlp.extractor.gen_extractors():
yield from ie.get_testcases(include_onlymatching)