Files
moli/moli-cdp-smoke/tests/test_group_selection.py
ldm0 156e16873d fix(emulation): preserve Date and Intl input semantics
Handle Unicode and legacy date inputs without unsafe slicing or timezone corruption. Normalize ICU locale IDs with the bundled ICU library and forward Intl options without violating frozen-object invariants. Add renderer regressions and process-isolated CDP input coverage.
2026-09-13 01:07:35 +08:00

86 lines
3.3 KiB
Python

from __future__ import annotations
import os
import unittest
from unittest.mock import patch
from moli_cdp_smoke.runner import (
ALL_GROUPS,
DEFAULT_GROUP_NAMES,
DEFAULT_GROUPS,
GROUPS_BY_NAME,
MANAGED_EXTERNAL_GROUPS,
OPTIONAL_EXTERNAL_GROUPS,
group_listing,
resolve_group_selection,
)
class GroupSelectionTests(unittest.TestCase):
def test_default_runs_every_repository_managed_group(self) -> None:
with patch.dict(os.environ, {"MOLI_SMOKE_GROUPS": ""}):
selection = resolve_group_selection()
self.assertEqual(
tuple(group.name for group in selection.groups),
DEFAULT_GROUP_NAMES,
)
self.assertEqual(DEFAULT_GROUP_NAMES, tuple(group.name for group in DEFAULT_GROUPS))
self.assertIn("debugger-breakpoints", DEFAULT_GROUP_NAMES)
self.assertIn("runtime-exception", DEFAULT_GROUP_NAMES)
self.assertIn("file-chooser", DEFAULT_GROUP_NAMES)
self.assertIn("inspector-routing", DEFAULT_GROUP_NAMES)
self.assertIn("navigation-outcomes", DEFAULT_GROUP_NAMES)
self.assertIn("media-error", DEFAULT_GROUP_NAMES)
self.assertIn("locale-timezone-inputs", DEFAULT_GROUP_NAMES)
self.assertIn("webgl-viewport", DEFAULT_GROUP_NAMES)
self.assertIn("svg-rect", DEFAULT_GROUP_NAMES)
self.assertIn("target-lifecycle", DEFAULT_GROUP_NAMES)
self.assertIn("multi-page", DEFAULT_GROUP_NAMES)
self.assertIn("puppeteer", DEFAULT_GROUP_NAMES)
self.assertEqual(
tuple(group.name for group in MANAGED_EXTERNAL_GROUPS),
("puppeteer",),
)
def test_only_external_environment_groups_remain_opt_in(self) -> None:
optional_names = tuple(group.name for group in OPTIONAL_EXTERNAL_GROUPS)
self.assertEqual(
optional_names,
("chrome-remote-interface", "cdp-use", "stagehand", "agent-browser"),
)
self.assertTrue(set(optional_names).isdisjoint(DEFAULT_GROUP_NAMES))
def test_target_lifecycle_uses_managed_process_without_playwright_context(self) -> None:
selection = resolve_group_selection(["target-lifecycle"])
self.assertEqual(tuple(group.name for group in selection.process_groups), ("target-lifecycle",))
self.assertFalse(selection.needs_playwright)
self.assertFalse(selection.raw_groups)
def test_registry_and_listing_mark_exact_default_set(self) -> None:
self.assertEqual(len(ALL_GROUPS), len(GROUPS_BY_NAME))
listed_defaults = tuple(
group["name"] for group in group_listing() if group["default"]
)
self.assertEqual(listed_defaults, DEFAULT_GROUP_NAMES)
def test_explicit_cli_and_environment_selection_stay_focused(self) -> None:
explicit = resolve_group_selection(["protocol,puppeteer", "protocol"])
self.assertEqual(
tuple(group.name for group in explicit.groups),
("protocol", "puppeteer"),
)
with patch.dict(os.environ, {"MOLI_SMOKE_GROUPS": "action-window,core"}):
from_environment = resolve_group_selection()
self.assertEqual(
tuple(group.name for group in from_environment.groups),
("action-window", "core"),
)
if __name__ == "__main__":
unittest.main()