- given: an installed subplot function: install_subplot cleanup: uninstall_subplot - then: scenario "(?P.+)" was run function: scenario_was_run regex: true - then: scenario "(?P.+)" was not run function: scenario_was_not_run regex: true - then: step "(?Pgiven|when|then) (?P.+)" was run function: step_was_run regex: true - then: step "(?Pgiven|when|then) (?P.+)" was run, and then step "(?Pgiven|when|then) (?P.+)" function: step_was_run_and_then regex: true - then: cleanup for "(?Pgiven|when|then) (?P.+)" was run, and then for "(?Pgiven|when|then) (?P.+)" function: cleanup_was_run regex: true - then: cleanup for "(?Pgiven|when|then) (?P.+)" was not run function: cleanup_was_not_run regex: true - then: JSON output matches {filename} function: json_output_matches_file - then: "{filename} does not end in a newline" function: file_ends_in_zero_newlines - then: "{filename} ends in one newline" function: file_ends_in_one_newline - then: "{filename} ends in two newlines" function: file_ends_in_two_newlines # In order to cope with low granularity filesystems, sometimes we need to wait # for things to happen - when: I wait until (?P\d+) seconds? has passed function: sleep_seconds regex: true types: delay: uint # The following are purely descriptive steps and are not used to test anything - given: the necessary starting conditions function: do_nothing - when: I do the required actions function: do_nothing - then: the desired outcome is achieved function: do_nothing