"""Integration tests for lambda function.""" import base64 import json def test_invoke_lambda(invoke_lambda): """Test lambda invocation with sample EventBridge event.""" response = invoke_lambda # Check lambda executed successfully assert response["StatusCode"] == 200 assert "FunctionError" not in response # Parse response payload payload = json.loads(response["Payload"].read().decode()) # Verify response structure assert "total_rows" in payload assert "successful_rows" in payload assert "failed_rows" in payload # Log results for visibility print(f"\nLambda response: {json.dumps(payload, indent=2)}") # Decode and print logs if available if "LogResult" in response: logs = base64.b64decode(response["LogResult"]).decode() print(f"\nLambda logs:\n{logs}") def test_invoke_lambda_returns_expected_counts(invoke_lambda): """Test that lambda processes all rows from the CSV.""" response = invoke_lambda payload = json.loads(response["Payload"].read().decode()) # backfill-test.csv has 171 rows (9 identities x 19 accounts) assert payload["total_rows"] == 171 # All rows should be processed (either successful or failed) assert payload["successful_rows"] + payload["failed_rows"] == payload["total_rows"]