fix(ci): align toolchains and isolate platform tests
This commit is contained in:
@@ -13,6 +13,7 @@ ANDROID_15_INSTRUMENTATION_CLASSES = (
|
||||
"androidx.media3.decoder.ffmpeg.PlezyFfmpegPlaybackTest,"
|
||||
"com.edde746.plezy.exoplayer.PlezyAudioModePlaybackTest"
|
||||
)
|
||||
ANDROID_15_INSTRUMENTATION_TARGET = "android-15-instrumentation"
|
||||
|
||||
|
||||
GROUPS: dict[str, tuple[tuple[str, ...], ...]] = {
|
||||
@@ -119,8 +120,6 @@ def run_android_15_instrumentation() -> None:
|
||||
|
||||
|
||||
def run_group(name: str) -> int:
|
||||
if name == "android-15":
|
||||
run_android_15_instrumentation()
|
||||
failed = False
|
||||
for arguments in GROUPS[name]:
|
||||
print(f"==> Maestro {' '.join(arguments)}", flush=True)
|
||||
@@ -131,11 +130,18 @@ def run_group(name: str) -> int:
|
||||
return 1 if failed else 0
|
||||
|
||||
|
||||
def run_target(name: str) -> int:
|
||||
if name == ANDROID_15_INSTRUMENTATION_TARGET:
|
||||
run_android_15_instrumentation()
|
||||
return 0
|
||||
return run_group(name)
|
||||
|
||||
|
||||
def main(argv: Sequence[str] | None = None) -> int:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("group", choices=GROUPS)
|
||||
parser.add_argument("target", choices=(*GROUPS, ANDROID_15_INSTRUMENTATION_TARGET))
|
||||
args = parser.parse_args(argv)
|
||||
return run_group(args.group)
|
||||
return run_target(args.target)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -181,13 +181,21 @@ class CiGroupTests(unittest.TestCase):
|
||||
|
||||
with (
|
||||
patch.object(run_maestro_ci.run_maestro, "main", side_effect=statuses) as run,
|
||||
patch.object(run_maestro_ci, "run_android_15_instrumentation") as instrumentation,
|
||||
redirect_stdout(io.StringIO()),
|
||||
):
|
||||
exit_status = run_maestro_ci.run_group("android-15")
|
||||
|
||||
self.assertEqual(exit_status, 1)
|
||||
self.assertEqual(run.call_count, expected_runs)
|
||||
|
||||
def test_android_15_instrumentation_has_an_isolated_target(self) -> None:
|
||||
with (
|
||||
patch.object(run_maestro_ci, "run_android_15_instrumentation") as instrumentation,
|
||||
redirect_stdout(io.StringIO()),
|
||||
):
|
||||
exit_status = run_maestro_ci.run_target(run_maestro_ci.ANDROID_15_INSTRUMENTATION_TARGET)
|
||||
|
||||
self.assertEqual(exit_status, 0)
|
||||
instrumentation.assert_called_once_with()
|
||||
|
||||
def test_group_recipes_are_valid_runner_invocations(self) -> None:
|
||||
@@ -199,14 +207,12 @@ class CiGroupTests(unittest.TestCase):
|
||||
def test_group_stops_after_interruption(self) -> None:
|
||||
with (
|
||||
patch.object(run_maestro_ci.run_maestro, "main", return_value=143) as run,
|
||||
patch.object(run_maestro_ci, "run_android_15_instrumentation") as instrumentation,
|
||||
redirect_stdout(io.StringIO()),
|
||||
):
|
||||
exit_status = run_maestro_ci.run_group("android-15")
|
||||
|
||||
self.assertEqual(exit_status, 143)
|
||||
run.assert_called_once_with(("basic",))
|
||||
instrumentation.assert_called_once_with()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user