Files
sales-data-analysis/tests/test_config_validator.py
Jonathan Pressnell cf0b596449 Initial commit: sales analysis template
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 09:16:34 -05:00

46 lines
1.4 KiB
Python

"""
Unit tests for config_validator.py
"""
import pytest
import pandas as pd
from pathlib import Path
import sys
# Add parent directory to path
sys.path.insert(0, str(Path(__file__).parent.parent))
from config_validator import validate_config
class TestConfigValidator:
"""Test configuration validation"""
def test_validate_config_missing_column(self):
"""Test validation catches missing columns"""
df = pd.DataFrame({
'SomeColumn': [1, 2, 3]
})
errors, warnings = validate_config(df)
# Should have errors for missing required columns
assert len(errors) > 0
assert any('not found' in error.lower() for error in errors)
def test_validate_config_valid_data(self):
"""Test validation with valid data"""
df = pd.DataFrame({
'InvoiceDate': pd.to_datetime(['2023-01-01', '2023-02-01']),
'USD': [100.0, 200.0],
'Year': [2023, 2023]
})
errors, warnings = validate_config(df)
# Should have minimal errors (may have warnings about missing optional columns)
# But should not have critical errors if basic structure is correct
critical_errors = [e for e in errors if 'not found' in e.lower() and 'USD' in e or 'InvoiceDate' in e]
assert len(critical_errors) == 0
if __name__ == "__main__":
pytest.main([__file__, '-v'])