|
|
@ -16,7 +16,7 @@ fix_test_name = functools.partial(re.compile(r'IE(_all|_\d+)?$').sub, r'\1')
|
|
|
|
def parse_args():
|
|
|
|
def parse_args():
|
|
|
|
parser = argparse.ArgumentParser(description='Run selected yt-dlp tests')
|
|
|
|
parser = argparse.ArgumentParser(description='Run selected yt-dlp tests')
|
|
|
|
parser.add_argument(
|
|
|
|
parser.add_argument(
|
|
|
|
'test', help='a extractor tests, or one of "core" or "download"', nargs='*')
|
|
|
|
'test', help='an extractor test, test path, or one of "core" or "download"', nargs='*')
|
|
|
|
parser.add_argument(
|
|
|
|
parser.add_argument(
|
|
|
|
'-k', help='run a test matching EXPRESSION. Same as "pytest -k"', metavar='EXPRESSION')
|
|
|
|
'-k', help='run a test matching EXPRESSION. Same as "pytest -k"', metavar='EXPRESSION')
|
|
|
|
parser.add_argument(
|
|
|
|
parser.add_argument(
|
|
|
@ -27,7 +27,6 @@ def parse_args():
|
|
|
|
def run_tests(*tests, pattern=None, ci=False):
|
|
|
|
def run_tests(*tests, pattern=None, ci=False):
|
|
|
|
run_core = 'core' in tests or (not pattern and not tests)
|
|
|
|
run_core = 'core' in tests or (not pattern and not tests)
|
|
|
|
run_download = 'download' in tests
|
|
|
|
run_download = 'download' in tests
|
|
|
|
tests = list(map(fix_test_name, tests))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pytest_args = args.pytest_args or os.getenv('HATCH_TEST_ARGS', '')
|
|
|
|
pytest_args = args.pytest_args or os.getenv('HATCH_TEST_ARGS', '')
|
|
|
|
arguments = ['pytest', '-Werror', '--tb=short', *shlex.split(pytest_args)]
|
|
|
|
arguments = ['pytest', '-Werror', '--tb=short', *shlex.split(pytest_args)]
|
|
|
@ -41,7 +40,9 @@ def run_tests(*tests, pattern=None, ci=False):
|
|
|
|
arguments.extend(['-m', 'download'])
|
|
|
|
arguments.extend(['-m', 'download'])
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
arguments.extend(
|
|
|
|
arguments.extend(
|
|
|
|
f'test/test_download.py::TestDownload::test_{test}' for test in tests)
|
|
|
|
test if '/' in test
|
|
|
|
|
|
|
|
else f'test/test_download.py::TestDownload::test_{fix_test_name(test)}'
|
|
|
|
|
|
|
|
for test in tests)
|
|
|
|
|
|
|
|
|
|
|
|
print(f'Running {arguments}', flush=True)
|
|
|
|
print(f'Running {arguments}', flush=True)
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|