# Testing conventions constraint (YAML)

rules:
  - name: test_naming
    rule: "Use pytest and name tests test_*.py and test_* functions."
    examples:
      - good: "tests/test_text_pipeline.py"
      - bad: "tests/text_pipeline_test.py"

  - name: fixtures_and_conftest
    rule: "Place shared fixtures in tests/conftest.py or tests/fixtures/ for reuse."
    examples:
      - good: "use fixtures declared in tests/conftest.py"

  - name: assert_raises
    rule: "Explicitly assert expected exceptions with pytest.raises for invalid input."
    examples:
      - good: |
          import pytest

          def test_invalid_input():
              with pytest.raises(ValueError):
                  function_under_test('bad')

enforcement_examples:
  - "Run pytest in CI; fail if tests don't run or if there are regressions."
