""" 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'])