Files
prowler/tests/providers/openstack/openstack_fixtures.py

73 lines
2.1 KiB
Python

"""OpenStack provider test fixtures."""
from unittest.mock import MagicMock
from prowler.providers.openstack.models import OpenStackIdentityInfo, OpenStackSession
from prowler.providers.openstack.openstack_provider import OpenstackProvider
OPENSTACK_AUTH_URL = "https://openstack.example.com:5000/v3"
OPENSTACK_USERNAME = "test-user"
OPENSTACK_PROJECT_ID = "test-project-id"
OPENSTACK_PROJECT_NAME = "test-project"
OPENSTACK_REGION = "RegionOne"
OPENSTACK_USER_ID = "test-user-id"
OPENSTACK_DOMAIN = "Default"
def set_mocked_openstack_provider(
auth_url: str = OPENSTACK_AUTH_URL,
username: str = OPENSTACK_USERNAME,
project_id: str = OPENSTACK_PROJECT_ID,
region_name: str = OPENSTACK_REGION,
audit_config: dict = None,
) -> OpenstackProvider:
"""Create a mocked OpenStack provider for testing.
Args:
auth_url: OpenStack authentication URL
username: OpenStack username
project_id: OpenStack project ID
region_name: OpenStack region name
audit_config: Optional audit configuration
Returns:
Mocked OpenstackProvider instance
"""
provider = MagicMock(spec=OpenstackProvider)
provider.type = "openstack"
# Mock session
provider.session = OpenStackSession(
auth_url=auth_url,
identity_api_version="3",
username=username,
password="test-password",
project_id=project_id,
region_name=region_name,
user_domain_name=OPENSTACK_DOMAIN,
project_domain_name=OPENSTACK_DOMAIN,
)
# Mock identity
provider.identity = OpenStackIdentityInfo(
user_id=OPENSTACK_USER_ID,
username=username,
project_id=project_id,
project_name=OPENSTACK_PROJECT_NAME,
region_name=region_name,
user_domain_name=OPENSTACK_DOMAIN,
project_domain_name=OPENSTACK_DOMAIN,
)
# Mock connection
provider.connection = MagicMock()
# Mock regional connections (single-region default)
provider.regional_connections = {region_name: provider.connection}
# Mock audit config
provider.audit_config = audit_config or {}
provider.fixer_config = {}
return provider