scenario.scenariorunner module

Scenario execution management.

SCENARIO_RUNNER

Main instance of ScenarioRunner.

class ScenarioRunner

Bases: Logger

Test execution engine: runs scenarios, i.e. instances derived from the ScenarioDefinition class.

Only one instance, accessible through the SCENARIO_RUNNER singleton.

Implements the main() function for scenario executions.

This class works with the following helper classes, with their respected purpose:

class ExecutionMode

Bases: StrEnum

Execution mode enum.

Tells whether the scenario runner is currently:

  • building the objects,

  • generating the documentation,

  • or executing the test.

BUILD_OBJECTS = 'build'

The scenario runner is currently building the test objects.

DOC_ONLY = 'doc-only'

The scenario runner is currently generating the test documentation.

EXECUTE = 'execute'

The scenario runner is currently executing the final test script.

__init__()

Sets up logging for the ScenarioRunner class, and member variables.

main()

Scenario runner main function, as a member method.

Returns:

Error code.

property _execution_mode

Current execution mode.

Depends on 1) the scenario stack building context, and 2) the scenario args –doc-only option.

executepath(scenario_path)

Executes a scenario from its script path.

Parameters:

scenario_path – Scenario Python script path.

Returns:

Error code, but no errcodes.ErrorCode.TEST_ERROR.

Feeds the SCENARIO_RESULTS instance.

executescenario(scenario_definition, start_time=None)

Executes a scenario or subscenario.

Parameters:
  • scenario_definition – Scenario to execute.

  • start_time

    Optional starting time specification.

    May be set in order to save the most accurate info on the starting time of the scenario.

Returns:

Error code, but no errcodes.ErrorCode.TEST_ERROR.

_buildscenario(scenario_definition)

Builds a scenario definition.

Parameters:

scenario_definitionScenarioDefinition instance to populate with steps, actions and expected results definitions.

Returns:

Error code.

_beginscenario(scenario_definition)

Begins a scenario or sub-scenario execution.

Parameters:

scenario_definition – Scenario or subscenario which execution to start.

Returns:

Error code.

_endscenario(scenario_definition)

Ends a scenario or subscenario execution.

Parameters:

scenario_definition – Scenario or subscenario which execution to end.

Returns:

Error code.

_execstep(step_definition)

Executes the step.

Parameters:

step_definition – Step definition to execute.

onstepdescription(description)

Call redirection from scenariodefinition.ScenarioDefinition.STEP().

Parameters:

description – Step description.

_notifyknownissuedefinitions(step_user_api, known_issues=None)

Notifies the known issues declared at the definition level for the given scenario or step definition.

Parameters:
  • step_user_api – Scenario or step definition to process known issues for.

  • known_issues – Specific known issue list to process. Defaults to StepUserApi.known_issues when not set.

onactionresult(action_result_type, description)

Call redirection from scenariodefinition.ScenarioDefinition.ACTION() or scenariodefinition.ScenarioDefinition.RESULT().

Parameters:
  • action_result_type – ACTION or RESULT.

  • description – Action or expected result description.

_endcurrentactionresult()

Ends the current action or expected result section.

onevidence(evidence)

Call redirection from scenariodefinition.ScenarioDefinition.EVIDENCE().

Parameters:

evidence – Evidence text.

doexecute()

Tells whether the test script shall be executed.

Returns:

True when the test script shall be executed.

onerror(error, originator=None)

Called when an error occurs.

Parameters:
  • error – Error that occurred.

  • originator – Scenario or step definition that made the call to onerror(), set in :meth:.stepuserapi.StepUserApi.knownissue()`..

_shouldstop()

Tells whether the scenario execution should stop.

Returns:

True when the scenario execution should stop, False when the scenario execution should continue on.

goto(to_step_specification)

Call redirection from scenariodefinition.ScenarioDefinition.goto().

Parameters:

to_step_specification – Specification of the next step to execute.

exception GotoException

Bases: Exception

Breaks execution in a step method when scenariodefinition.ScenarioDefinition.goto() is called.