test_scan_data_processor.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import pytest
  2. from app.services.scan_data_processor import ScanDataProcessor
  3. from app.scanners.base import ResourceData, ScanResult
  4. @pytest.fixture
  5. def processor():
  6. return ScanDataProcessor()
  7. @pytest.fixture
  8. def valid_scan_data():
  9. return {
  10. "metadata": {
  11. "account_id": "123456789012",
  12. "scan_timestamp": "2024-01-15T10:30:00Z",
  13. "regions_scanned": ["us-east-1"],
  14. "services_scanned": ["vpc"],
  15. },
  16. "resources": {
  17. "vpc": [{
  18. "account_id": "123456789012",
  19. "region": "us-east-1",
  20. "service": "vpc",
  21. "resource_type": "VPC",
  22. "resource_id": "vpc-12345678",
  23. "name": "main-vpc",
  24. "attributes": {}
  25. }]
  26. },
  27. "errors": []
  28. }
  29. class TestValidateScanData:
  30. def test_valid_scan_data(self, processor, valid_scan_data):
  31. is_valid, errors = processor.validate_scan_data(valid_scan_data)
  32. assert is_valid is True
  33. assert errors == []
  34. def test_invalid_data_type(self, processor):
  35. is_valid, errors = processor.validate_scan_data("not a dict")
  36. assert is_valid is False
  37. class TestConvertToScanResult:
  38. def test_convert_valid_data(self, processor, valid_scan_data):
  39. result = processor.convert_to_scan_result(valid_scan_data)
  40. assert isinstance(result, ScanResult)
  41. assert result.success is True