forked from HAL9000/cleveragents-core
1878998b7a
Rename the TDD tag system from tdd_bug/tdd_bug_<N> to tdd_issue/tdd_issue_<N> across the entire codebase. The tdd_expected_fail tag is unchanged. The TDD expected-failure workflow is not limited to bug fixes — it applies equally to any issue type (features, tasks, refactors). The _bug suffix was misleading and narrowed the perceived scope. The new _issue suffix accurately reflects that the TDD tagging system applies to any Forgejo issue. Changes span 92 files: - features/environment.py: validate_tdd_tags(), should_invert_result(), and apply_tdd_inversion() updated — regex, variables, error messages - robot/tdd_expected_fail_listener.py: _validate_tdd_tags(), _should_invert_result(), start_test(), end_test() updated consistently - 33 Behave .feature files: all @tdd_bug/@tdd_bug_<N> tags renamed - 29 Robot .robot files: all tdd_bug/tdd_bug_<N> tags renamed - 3 Robot fixture files renamed (tdd_bug_alone, tdd_missing_tdd_bug, tdd_expected_fail_missing_bug_n) with content and references updated - Tag validation tests and helpers updated (function names, command dispatch keys, output strings, fixture references) - CONTRIBUTING.md: section renamed from 'TDD Bug Test Tags' to 'TDD Issue Test Tags', all tag references and examples updated - noxfile.py: comment references updated - Step definition files, mock helpers, and benchmark files: docstring references updated ISSUES CLOSED: #965
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
"""Step definitions used exclusively by ``tdd_expected_fail_demo.feature``.
|
|
|
|
Per CONTRIBUTING.md: steps used only by a particular feature file must live
|
|
in a correspondingly named step definition file.
|
|
|
|
These steps provide deliberately-passing and deliberately-failing behaviour
|
|
to exercise the ``Scenario.run()`` wrapper installed by
|
|
``_install_tdd_expected_fail_patch()`` in ``features/environment.py``.
|
|
|
|
See CONTRIBUTING.md > TDD Issue Test Tags for the three-tag specification.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from behave import given, then, when
|
|
from behave.runner import Context
|
|
|
|
|
|
@given("tdd demo a step that always succeeds")
|
|
def step_tdd_demo_success(context: Context) -> None:
|
|
"""A trivial passing step."""
|
|
context.tdd_demo_ran = True
|
|
|
|
|
|
@when("tdd demo a deliberately failing assertion is executed")
|
|
def step_tdd_demo_deliberate_fail(context: Context) -> None:
|
|
"""This step deliberately fails to simulate a bug still being present.
|
|
|
|
The ``@tdd_expected_fail`` tag on the scenario causes the
|
|
``Scenario.run()`` wrapper to invert this failure into a pass.
|
|
"""
|
|
msg = "Deliberate failure: bug #999 is still present (expected by TDD tag)"
|
|
raise AssertionError(msg)
|
|
|
|
|
|
@then("tdd demo this step is never reached")
|
|
def step_tdd_demo_never_reached(context: Context) -> None:
|
|
"""Placeholder step — unreachable because the previous step fails."""
|
|
context.tdd_demo_unreachable = True
|