import pytest from app.services.scan_data_processor import ScanDataProcessor from app.scanners.base import ResourceData, ScanResult @pytest.fixture def processor(): return ScanDataProcessor() @pytest.fixture def valid_scan_data(): return { "metadata": { "account_id": "123456789012", "scan_timestamp": "2024-01-15T10:30:00Z", "regions_scanned": ["us-east-1"], "services_scanned": ["vpc"], }, "resources": { "vpc": [{ "account_id": "123456789012", "region": "us-east-1", "service": "vpc", "resource_type": "VPC", "resource_id": "vpc-12345678", "name": "main-vpc", "attributes": {} }] }, "errors": [] } class TestValidateScanData: def test_valid_scan_data(self, processor, valid_scan_data): is_valid, errors = processor.validate_scan_data(valid_scan_data) assert is_valid is True assert errors == [] def test_invalid_data_type(self, processor): is_valid, errors = processor.validate_scan_data("not a dict") assert is_valid is False class TestConvertToScanResult: def test_convert_valid_data(self, processor, valid_scan_data): result = processor.convert_to_scan_result(valid_scan_data) assert isinstance(result, ScanResult) assert result.success is True