Scenario Status
Overview
The ScenarioStatus
enumeration defines possible states for a ScenarioResult
, indicating the current status of a test scenario.
from enum import Enum
class ScenarioStatus(Enum):
PENDING = "PENDING"
PASSED = "PASSED"
FAILED = "FAILED"
SKIPPED = "SKIPPED"
- PENDING: Indicates the scenario is queued and waiting for execution.
- PASSED: Signifies that the scenario has completed successfully, with all assertions validated.
- FAILED: Marks the scenario as unsuccessful due to failed assertions or unexpected errors.
- SKIPPED: Represents scenarios that are deliberately not executed, for instance, scenarios marked with
@vedro.skip
.
Note
The statuses PASSED
, FAILED
, and SKIPPED
are final. Once a ScenarioResult
is assigned one of these statuses, it cannot change.
Usage Examples
These examples demonstrate how to use the ScenarioStatus
enum in Vedro plugins during different stages of the test execution lifecycle.
- PENDING
- PASSED
- FAILED
- SKIPPED
from vedro.core import Dispatcher, Plugin, ScenarioStatus
from vedro.events import ScenarioRunEvent
class CustomPlugin(Plugin):
def subscribe(self, dispatcher: Dispatcher):
dispatcher.listen(ScenarioRunEvent, self.on_scenario_run)
def on_scenario_run(self, event: ScenarioRunEvent):
assert event.scenario_result.status == ScenarioStatus.PENDING
from vedro.core import Dispatcher, Plugin, ScenarioStatus
from vedro.events import ScenarioPassedEvent
class CustomPlugin(Plugin):
def subscribe(self, dispatcher: Dispatcher):
dispatcher.listen(ScenarioPassedEvent, self.on_scenario_passed)
def on_scenario_passed(self, event: ScenarioPassedEvent):
assert event.scenario_result.status == ScenarioStatus.PASSED
from vedro.core import Dispatcher, Plugin, ScenarioStatus
from vedro.events import ScenarioFailedEvent
class CustomPlugin(Plugin):
def subscribe(self, dispatcher: Dispatcher):
dispatcher.listen(ScenarioFailedEvent, self.on_scenario_failed)
def on_scenario_failed(self, event: ScenarioFailedEvent):
assert event.scenario_result.status == ScenarioStatus.FAILED
from vedro.core import Dispatcher, Plugin, ScenarioStatus
from vedro.events import ScenarioSkippedEvent
class CustomPlugin(Plugin):
def subscribe(self, dispatcher: Dispatcher):
dispatcher.listen(ScenarioSkippedEvent, self.on_scenario_skipped)
def on_scenario_skipped(self, event: ScenarioSkippedEvent):
assert event.scenario_result.status == ScenarioStatus.SKIPPED