def test_modules_can_be_added(self): v = Variant("variant name") v.modules(["enterprise", "enterprise2"]) obj = v.to_map() assert "enterprise" in obj["modules"] assert "enterprise2" in obj["modules"]
def test_tasks_can_be_added(self): v = Variant("variant name") v.task(TaskSpec("task 0")).tasks( [TaskSpec("task 1"), TaskSpec("task 2")]) obj = v.to_map() assert "task 0" == obj["tasks"][0]["name"] assert "task 1" == obj["tasks"][1]["name"] assert "task 2" == obj["tasks"][2]["name"]
def test_flat_values_in_map(self): v = Variant("variant name") v.display_name("display name").run_on("distro").batch_time(100) obj = v.to_map() assert "variant name" == obj["name"] assert "display name" == obj["display_name"] assert ["distro"] == obj["run_on"] assert 100 == obj["batchtime"]
def test_display_tasks_can_be_added(self): v = Variant("variant name") v.display_task(DisplayTaskDefinition("display task 0"))\ .display_tasks([DisplayTaskDefinition("display task 1"), DisplayTaskDefinition("display task 2")]) obj = v.to_map() assert "display task 0" == obj["display_tasks"][0]["name"] assert "display task 1" == obj["display_tasks"][1]["name"] assert "display task 2" == obj["display_tasks"][2]["name"]
def _find_task(build_variant_config: Variant, task_name: str) -> Task: """ Look up shrub config for task. :param build_variant_config: Config of build variant to collect task info from. :param task_name: Name of task to get info for. :return: Task configuration. """ task = build_variant_config.get_task(task_name) if not task: task = build_variant_config.get_task(task_name + "_gen") return task
def _get_evg_task_config( selected_tests_variant_expansions: Dict[str, str], task_name: str, build_variant_config: Variant, ) -> Dict[str, Any]: """ Look up task config of the task to be generated. :param selected_tests_variant_expansions: Expansions of the selected-tests variant. :param task_name: Task to get info for. :param build_variant_config: Config of build variant to collect task info from. :return: Task configuration values. """ task = build_variant_config.get_task(task_name) if task.is_generate_resmoke_task: task_vars = task.generate_resmoke_tasks_command["vars"] else: task_vars = task.run_tests_command["vars"] task_vars.update({"fallback_num_sub_suites": "1"}) suite_name = ResmokeArgs.get_arg(task_vars["resmoke_args"], "suites") if suite_name: task_vars.update({"suite": suite_name}) # the suites argument will run all tests in a suite even when individual # tests are specified in resmoke_args, so we remove it resmoke_args_without_suites = ResmokeArgs.remove_arg(task_vars["resmoke_args"], "suites") task_vars["resmoke_args"] = resmoke_args_without_suites selected_tests_task_config = _get_selected_tests_task_config(selected_tests_variant_expansions) return { "task_name": task.name, "build_variant": build_variant_config.name, **task_vars, **selected_tests_task_config }
def test_expansions_can_be_added(self): v = Variant("variant name") v.expansion("k0", "v0") v.expansions({"k1": "v1", "k2": "v2"}) obj = v.to_map() assert "v0" in obj["expansions"]["k0"] assert "v1" in obj["expansions"]["k1"] assert "v2" in obj["expansions"]["k2"]
def test_invalid_tasks_cannot_be_added(self): v = Variant("variant name") with pytest.raises(TypeError): v.task("I'm not really a task") with pytest.raises(TypeError): v.tasks(TaskSpec("not array"))
def test_invalid_modules_cannot_be_added(self): v = Variant("variant name") with pytest.raises(TypeError): v.module(25) with pytest.raises(TypeError): v.modules(TaskSpec("not array"))
def test_invalid_expansion(self): v = Variant("variant name") with pytest.raises(TypeError): v.expansion(42, "v") with pytest.raises(TypeError): v.expansion("k", 42)
def variant(self, name): """ Get a variant the variant list by name. If the variant name is not found, create a new variant and insert it into the variant list. :param name: name of variant. :return: variant specified. """ if not isinstance(name, str): raise TypeError("variant only accepts strings") v = _find_name_in_list(self._variants, name) if v: return v v = Variant(name) self._variants.append(v) return v
def test_invalid_run_on(self): v = Variant("variant name") with pytest.raises(TypeError): v.run_on(42)
def test_module_can_be_added(self): v = Variant("variant name") v.module("enterprise") obj = v.to_map() assert ["enterprise"] == obj["modules"]
def test_invalid_batch_time(self): v = Variant("variant name") with pytest.raises(TypeError): v.batch_time("hello World")
def test_invalid_display_name(self): v = Variant("variant name") with pytest.raises(TypeError): v.display_name(42)
def test_invalid_name(self): with pytest.raises(TypeError): Variant(42)
def test_empty_command_definition(self): v = Variant("variant name") assert "variant name" == v.get_name() assert {"name": "variant name"} == v.to_map()
def test_invalid_display_tasks(self): v = Variant("variant name") with pytest.raises(TypeError): v.display_tasks("hello world")