def step_given_named_model_elements_with_tags(context): """ .. code-block:: gherkin Then the tag expression select model elements with: | tag expression | selected? | | @foo | S1, S3 | | -@foo | S0, S2, S3 | """ assert context.model_elements, "REQUIRE: context attribute" assert context.table, "REQUIRE: context.table" context.table.require_columns(["tag expression", "selected?"]) for row_index, row in enumerate(context.table.rows): tag_expression_text = row["tag expression"] tag_expression = convert_tag_expression(tag_expression_text) expected_selected_names = convert_comma_list(row["selected?"]) actual_selected = [] for model_element in context.model_elements: if tag_expression.check(model_element.tags): actual_selected.append(model_element.name) assert_that(actual_selected, equal_to(expected_selected_names), "tag_expression=%s (row=%s)" % (tag_expression_text, row_index))
def step_then_scenarios_are_selected_with_cmdline(context): """ .. code-block:: Gherkin Then the following scenarios are selected with cmdline: | cmdline | selected? | Logic comment | | --tags=@foo | A1, A3, B2 | @foo | """ assert context.behave_model, "REQUIRE: context attribute" assert context.table, "REQUIRE: context.table" context.table.require_columns(["cmdline", "selected?"]) model = context.behave_model for row_index, row in enumerate(context.table.rows): cmdline = row["cmdline"] expected_selected_names = convert_comma_list(row["selected?"]) # -- STEP: Run model with cmdline tags run_model_with_cmdline(model, cmdline) selected, skipped = collect_selected_and_skipped_scenarios(model) actual_selected = [scenario.name for scenario in selected] # -- CHECK: assert_that(actual_selected, equal_to(expected_selected_names), "cmdline=%s (row=%s)" % (cmdline, row_index))