Files
vibe_data_ana/tests/conftest.py

112 lines
3.1 KiB
Python
Raw Normal View History

"""Pytest configuration and fixtures."""
import pytest
from hypothesis import settings, Verbosity
# Configure hypothesis settings
settings.register_profile("default", max_examples=100, verbosity=Verbosity.normal)
settings.register_profile("ci", max_examples=1000, verbosity=Verbosity.verbose)
settings.load_profile("default")
@pytest.fixture
def sample_column_info():
"""Fixture providing a sample ColumnInfo instance."""
from src.models import ColumnInfo
return ColumnInfo(
name='test_column',
dtype='numeric',
missing_rate=0.1,
unique_count=50,
sample_values=[1, 2, 3, 4, 5],
statistics={'mean': 3.0, 'std': 1.5}
)
@pytest.fixture
def sample_data_profile():
"""Fixture providing a sample DataProfile instance."""
from src.models import DataProfile, ColumnInfo
columns = [
ColumnInfo(name='id', dtype='numeric', missing_rate=0.0, unique_count=100),
ColumnInfo(name='status', dtype='categorical', missing_rate=0.0, unique_count=3),
]
return DataProfile(
file_path='test.csv',
row_count=100,
column_count=2,
columns=columns,
inferred_type='ticket',
key_fields={'status': 'ticket status'},
quality_score=85.0,
summary='Test data profile'
)
@pytest.fixture
def sample_analysis_objective():
"""Fixture providing a sample AnalysisObjective instance."""
from src.models import AnalysisObjective
return AnalysisObjective(
name='Test Objective',
description='Test analysis objective',
metrics=['metric1', 'metric2'],
priority=5
)
@pytest.fixture
def sample_requirement_spec(sample_analysis_objective):
"""Fixture providing a sample RequirementSpec instance."""
from src.models import RequirementSpec
return RequirementSpec(
user_input='Test requirement',
objectives=[sample_analysis_objective],
constraints=['no_pii'],
expected_outputs=['report']
)
@pytest.fixture
def sample_analysis_task():
"""Fixture providing a sample AnalysisTask instance."""
from src.models import AnalysisTask
return AnalysisTask(
id='task_1',
name='Test Task',
description='Test analysis task',
priority=5,
dependencies=[],
required_tools=['tool1'],
expected_output='Test output'
)
@pytest.fixture
def sample_analysis_plan(sample_analysis_objective, sample_analysis_task):
"""Fixture providing a sample AnalysisPlan instance."""
from src.models import AnalysisPlan
return AnalysisPlan(
objectives=[sample_analysis_objective],
tasks=[sample_analysis_task],
tool_config={'tool1': 'config1'},
estimated_duration=300
)
@pytest.fixture
def sample_analysis_result():
"""Fixture providing a sample AnalysisResult instance."""
from src.models import AnalysisResult
return AnalysisResult(
task_id='task_1',
task_name='Test Task',
success=True,
data={'count': 100},
visualizations=['chart.png'],
insights=['Key finding'],
execution_time=5.0
)