Files
moli/moli-webdriver-smoke/tests/test_group_selection.py

68 lines
2.2 KiB
Python

from __future__ import annotations
import os
import unittest
from unittest.mock import patch
from moli_webdriver_smoke.runner import (
ALL_GROUPS,
CHROMEDRIVER_ORACLE_GROUPS,
DEFAULT_GROUP_NAMES,
DEFAULT_GROUPS,
GROUPS_BY_NAME,
MOLI_GROUPS,
group_listing,
resolve_group_selection,
)
class GroupSelectionTests(unittest.TestCase):
def test_default_runs_every_moli_group(self) -> None:
with patch.dict(os.environ, {"MOLI_WEBDRIVER_SMOKE_GROUPS": ""}):
selection = resolve_group_selection()
self.assertEqual(
tuple(group.name for group in selection),
DEFAULT_GROUP_NAMES,
)
self.assertEqual(DEFAULT_GROUPS, MOLI_GROUPS)
self.assertIn("classic", DEFAULT_GROUP_NAMES)
self.assertIn("bidi", DEFAULT_GROUP_NAMES)
self.assertIn("selenium", DEFAULT_GROUP_NAMES)
self.assertIn("script-interrupt", DEFAULT_GROUP_NAMES)
def test_only_chromedriver_oracle_remains_opt_in(self) -> None:
oracle_names = tuple(group.name for group in CHROMEDRIVER_ORACLE_GROUPS)
self.assertEqual(oracle_names, ("script-timeout-chromium",))
self.assertTrue(set(oracle_names).isdisjoint(DEFAULT_GROUP_NAMES))
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(["bidi,selenium", "bidi"])
self.assertEqual(
tuple(group.name for group in explicit),
("bidi", "selenium"),
)
with patch.dict(
os.environ,
{"MOLI_WEBDRIVER_SMOKE_GROUPS": "classic,script-interrupt"},
):
from_environment = resolve_group_selection()
self.assertEqual(
tuple(group.name for group in from_environment),
("classic", "script-interrupt"),
)
if __name__ == "__main__":
unittest.main()