Fixture
provide.testkit.quality.complexity.fixture
¶
Pytest fixtures for complexity analysis.
Classes¶
ComplexityFixture
¶
Bases: BaseQualityFixture
Pytest fixture for complexity analysis integration.
Initialize complexity fixture.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
dict[str, Any] | None
|
Complexity analyzer configuration |
None
|
artifact_dir
|
Path | None
|
Directory for artifacts |
None
|
Source code in provide/testkit/quality/complexity/fixture.py
Functions¶
analyze
¶
Perform complexity analysis.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
Path
|
Path to analyze |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Complexity analysis results |
Source code in provide/testkit/quality/complexity/fixture.py
generate_report
¶
Generate complexity report.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
format
|
str
|
Report format (terminal, json) |
'terminal'
|
Returns:
| Type | Description |
|---|---|
str
|
Formatted report |
Source code in provide/testkit/quality/complexity/fixture.py
setup
¶
Setup complexity analysis.
Source code in provide/testkit/quality/complexity/fixture.py
Functions¶
auto_complexity_marker
¶
Automatically apply complexity analysis to marked tests.
Tests marked with @pytest.mark.complexity will automatically get complexity analysis without needing to explicitly use fixtures.
Source code in provide/testkit/quality/complexity/fixture.py
complexity_analyzer
¶
complexity_analyzer(
request: FixtureRequest, tmp_path: Path
) -> Generator[ComplexityFixture, None, None]
Pytest fixture for complexity analysis.
Provides a ComplexityFixture instance for code complexity analysis.
Usage
def test_complexity_analysis(complexity_analyzer): result = complexity_analyzer.analyze(Path('./src')) assert result['passed'] assert result['grade'] in ['A', 'B', 'C']
Source code in provide/testkit/quality/complexity/fixture.py
complexity_config
¶
Default complexity configuration fixture.
Returns standard complexity configuration that can be customized per test or project.
Usage
def test_custom_complexity(complexity_config): complexity_config["min_grade"] = "A" complexity_config["max_complexity"] = 10 # Use with parametrized complexity_analyzer
Source code in provide/testkit/quality/complexity/fixture.py
parametrized_complexity
¶
parametrized_complexity(
request: FixtureRequest, tmp_path: Path
) -> Generator[ComplexityFixture, None, None]
Parametrized complexity fixture for testing different configurations.
Automatically runs tests with different complexity thresholds to validate behavior under various settings.
Usage
def test_complexity_configs(parametrized_complexity): # Test runs multiple times with different configs result = parametrized_complexity.analyze(Path('./src')) # Behavior will vary based on configuration
Source code in provide/testkit/quality/complexity/fixture.py
pytest_configure
¶
Configure pytest with complexity markers.