mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-10-20 02:14:18 +00:00
Co-authored-by: Hugo P.Brito <hugopbrit@gmail.com> Co-authored-by: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com>
56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
"""Shared helpers for `user` service check tests."""
|
|
|
|
from unittest import mock
|
|
|
|
from prowler.providers.okta.services.user.user_service import (
|
|
ExternalDirectoryIdp,
|
|
UserAutomation,
|
|
)
|
|
from tests.providers.okta.okta_fixtures import set_mocked_okta_provider
|
|
|
|
|
|
def build_user_client(
|
|
automations: dict = None,
|
|
external_directory_idps: dict = None,
|
|
audit_config: dict = None,
|
|
missing_scope: dict = None,
|
|
):
|
|
client = mock.MagicMock()
|
|
client.automations = automations or {}
|
|
client.external_directory_idps = external_directory_idps or {}
|
|
client.provider = set_mocked_okta_provider()
|
|
client.audit_config = audit_config or {}
|
|
client.missing_scope = missing_scope or {
|
|
"automations": None,
|
|
"identity_providers": None,
|
|
}
|
|
return client
|
|
|
|
|
|
def automation(
|
|
automation_id: str = "auto-1",
|
|
name: str = "User Inactivity",
|
|
status: str = "ACTIVE",
|
|
schedule_status: str = "ACTIVE",
|
|
inactivity_days: int = 35,
|
|
lifecycle_action: str = "SUSPENDED",
|
|
groups: list = None,
|
|
):
|
|
# `groups is None` keeps the "Everyone-equivalent" default; passing
|
|
# `groups=[]` lets a test exercise the empty-scope FAIL path.
|
|
return UserAutomation(
|
|
id=automation_id,
|
|
name=name,
|
|
status=status,
|
|
schedule_status=schedule_status,
|
|
inactivity_days=inactivity_days,
|
|
lifecycle_action=lifecycle_action,
|
|
applies_to_groups=["everyone"] if groups is None else groups,
|
|
)
|
|
|
|
|
|
def ad_idp(idp_id: str = "0oa-ad", name: str = "Corp AD"):
|
|
return ExternalDirectoryIdp(
|
|
id=idp_id, name=name, type="ACTIVE_DIRECTORY", status="ACTIVE"
|
|
)
|