|
4 | 4 | import shutil
|
5 | 5 | import subprocess
|
6 | 6 | import sys
|
| 7 | +import argparse |
7 | 8 | from collections.abc import Callable
|
8 |
| -from dataclasses import dataclass, field |
9 | 9 | from fractions import Fraction
|
10 | 10 | from hashlib import sha256
|
11 | 11 | from tempfile import mkdtemp
|
|
16 | 16 |
|
17 | 17 | from ffwrapper import FileInfo
|
18 | 18 | from log import Log
|
19 |
| -from vanparse import ArgumentParser |
20 | 19 |
|
21 | 20 |
|
22 |
| -@dataclass(slots=True) |
23 |
| -class TestArgs: |
24 |
| - only: list[str] = field(default_factory=list) |
25 |
| - help: bool = False |
26 |
| - no_failfast: bool = False |
27 |
| - category: str = "cli" |
28 |
| - |
29 |
| - |
30 |
| -def test_options(parser: ArgumentParser) -> ArgumentParser: |
31 |
| - parser.add_argument("--only", "-n", nargs="*") |
32 |
| - parser.add_argument("--no-failfast", flag=True) |
33 |
| - parser.add_required( |
34 |
| - "category", |
35 |
| - nargs=1, |
36 |
| - choices=("cli", "sub", "all"), |
37 |
| - metavar="category [options]", |
38 |
| - ) |
| 21 | +def test_options() -> argparse.ArgumentParser: |
| 22 | + parser = argparse.ArgumentParser(description="Test options") |
| 23 | + parser.add_argument("--only", "-n", nargs="*", default=[]) |
| 24 | + parser.add_argument("--no-failfast", action="store_true", default=False) |
39 | 25 | return parser
|
40 | 26 |
|
41 | 27 |
|
@@ -394,7 +380,9 @@ def test_premiere(self) -> None:
|
394 | 380 | continue
|
395 | 381 |
|
396 | 382 | p_xml = self.main([f"resources/{test_name}"], ["-exp"], "out.xml")
|
397 |
| - self.main([p_xml], []) |
| 383 | + |
| 384 | + # TODO: Support premiere XML as input. |
| 385 | + # self.main([p_xml], []) |
398 | 386 |
|
399 | 387 | def test_export(self):
|
400 | 388 | for test_name in all_files:
|
@@ -547,7 +535,7 @@ def test_audio_norm_ebu(self) -> None:
|
547 | 535 | )
|
548 | 536 |
|
549 | 537 |
|
550 |
| -def run_tests(tests: list[Callable], args: TestArgs) -> None: |
| 538 | +def run_tests(tests: list[Callable], args) -> None: |
551 | 539 | if args.only != []:
|
552 | 540 | tests = list(filter(lambda t: t.__name__ in args.only, tests))
|
553 | 541 |
|
@@ -613,33 +601,25 @@ def timed_test(test_func):
|
613 | 601 | )
|
614 | 602 |
|
615 | 603 |
|
616 |
| -def main(sys_args: list[str] | None = None) -> None: |
617 |
| - if sys_args is None: |
618 |
| - sys_args = sys.argv[1:] |
619 |
| - |
620 |
| - args = test_options(ArgumentParser("test")).parse_args(TestArgs, sys_args) |
| 604 | +def main(): |
| 605 | + args = test_options().parse_args() |
621 | 606 | run = Runner()
|
622 | 607 | tests = []
|
623 |
| - |
624 | 608 | test_methods = {
|
625 | 609 | name: getattr(run, name)
|
626 | 610 | for name in dir(Runner)
|
627 | 611 | if callable(getattr(Runner, name)) and name not in ["main", "raw", "check"]
|
628 | 612 | }
|
629 |
| - |
630 |
| - if args.category in {"sub", "all"}: |
631 |
| - tests.extend( |
632 |
| - [test_methods[name] for name in ["info", "levels", "subdump", "desc"]] |
633 |
| - ) |
634 |
| - |
635 |
| - if args.category in {"cli", "all"}: |
636 |
| - tests.extend( |
637 |
| - [ |
638 |
| - getattr(run, name) |
639 |
| - for name in dir(Runner) |
640 |
| - if callable(getattr(Runner, name)) and name.startswith("test_") |
641 |
| - ] |
642 |
| - ) |
| 613 | + tests.extend( |
| 614 | + [test_methods[name] for name in ["info", "levels", "subdump", "desc"]] |
| 615 | + ) |
| 616 | + tests.extend( |
| 617 | + [ |
| 618 | + getattr(run, name) |
| 619 | + for name in dir(Runner) |
| 620 | + if callable(getattr(Runner, name)) and name.startswith("test_") |
| 621 | + ] |
| 622 | + ) |
643 | 623 | try:
|
644 | 624 | run_tests(tests, args)
|
645 | 625 | except KeyboardInterrupt:
|
|
0 commit comments