mirror of https://github.com/zulip/zulip.git
test-backend: Cast test runner to the custom Runner type.
Mypy does not know the acccurate return type of `get_runner` that is determined by the `TEST_RUNNER` setting. We need to cast it to the correct type to use methods like `get_shallow_tested_templates`. Note that we import conditionally to avoid adding runtime dependency on `zerver`. Signed-off-by: Zixuan James Li <p359101898@gmail.com>
This commit is contained in:
parent
0ed590594d
commit
f88530575a
|
@ -8,9 +8,14 @@ import shlex
|
|||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
from typing import Iterator, List
|
||||
from typing import TYPE_CHECKING, Iterator, List, Type, cast
|
||||
from unittest import mock
|
||||
|
||||
if TYPE_CHECKING:
|
||||
# This script does not have access to the zerver module during runtime.
|
||||
# We can only import this when type checking.
|
||||
from zerver.lib.test_runner import Runner
|
||||
|
||||
TOOLS_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
os.chdir(os.path.dirname(TOOLS_DIR))
|
||||
sys.path.insert(0, os.path.dirname(TOOLS_DIR))
|
||||
|
@ -406,7 +411,9 @@ def main() -> None:
|
|||
|
||||
subprocess.check_call(["tools/webpack", "--test"])
|
||||
|
||||
TestRunner = get_runner(settings)
|
||||
# isinstance check cannot be used with types. This can potentially improved by supporting
|
||||
# dynamic resolution of the test runner type with the django-stubs mypy plugin.
|
||||
TestRunner = cast("Type[Runner]", get_runner(settings))
|
||||
|
||||
parallel = default_parallel if options.processes is None else options.processes
|
||||
if parallel > 1:
|
||||
|
|
Loading…
Reference in New Issue