def test_get_storage_session_with_multiple_calls_returns_same_session( self, mock_tmp_auth ): storage_session_manager = ConnectionManager() session1 = storage_session_manager.get_storage_connection(mock_tmp_auth) session2 = storage_session_manager.get_storage_connection(mock_tmp_auth) assert session1 is session2
def test_get_saved_session_returns_session_after_successful_call_to_get_session( self, mock_tmp_auth ): storage_session_manager = ConnectionManager() storage_session_manager.get_storage_connection(mock_tmp_auth) assert ( storage_session_manager.get_saved_connection_for_url("testhost.com") is not None )
def test_get_storage_session_raises_session_init_error_when_tmp_auth_raises_http_error( self, mock_tmp_auth, http_error, mocker ): error = http_error error.response = mocker.MagicMock(spec=Response) error.response.text = "" mock_tmp_auth.get_storage_url.side_effect = Py42HTTPError(error) storage_session_manager = ConnectionManager() with pytest.raises(Py42StorageSessionInitializationError): storage_session_manager.get_storage_connection(mock_tmp_auth)
def _init_clients(services, connection): # clients are imported within function to prevent circular imports when a client # imports anything from py42.sdk.queries from py42.clients import Clients from py42.clients._archiveaccess.accessorfactory import ArchiveAccessorFactory from py42.clients.alertrules import AlertRulesClient from py42.clients.alerts import AlertsClient from py42.clients.archive import ArchiveClient from py42.clients.auditlogs import AuditLogsClient from py42.clients.authority import AuthorityClient from py42.clients.cases import CasesClient from py42.clients.detectionlists import DetectionListsClient from py42.clients.loginconfig import LoginConfigurationClient from py42.clients.securitydata import SecurityDataClient from py42.clients.trustedactivities import TrustedActivitiesClient from py42.services.storage._service_factory import ConnectionManager from py42.services.storage._service_factory import StorageServiceFactory authority = AuthorityClient( administration=services.administration, archive=services.archive, devices=services.devices, legalhold=services.legalhold, orgs=services.orgs, users=services.users, ) detectionlists = DetectionListsClient(services.userprofile, services.departingemployee, services.highriskemployee) storage_service_factory = StorageServiceFactory(connection, services.devices, ConnectionManager()) alertrules = AlertRulesClient(services.alerts, services.alertrules) securitydata = SecurityDataClient( services.fileevents, services.preservationdata, services.savedsearch, storage_service_factory, ) alerts = AlertsClient(services.alerts, alertrules) archive_accessor_factory = ArchiveAccessorFactory(services.archive, storage_service_factory) archive = ArchiveClient(archive_accessor_factory, services.archive) auditlogs = AuditLogsClient(services.auditlogs) loginconfig = LoginConfigurationClient(connection) trustedactivities = TrustedActivitiesClient(services.trustedactivities) clients = Clients( authority=authority, detectionlists=detectionlists, alerts=alerts, securitydata=securitydata, archive=archive, auditlogs=auditlogs, cases=CasesClient(services.cases, services.casesfileevents), loginconfig=loginconfig, trustedactivities=trustedactivities, ) return clients
def _init_clients(services, connection): authority = AuthorityClient( administration=services.administration, archive=services.archive, devices=services.devices, legalhold=services.legalhold, orgs=services.orgs, securitydata=services.securitydata, users=services.users, ) detectionlists = DetectionListsClient(services.userprofile, services.departingemployee, services.highriskemployee) storage_service_factory = StorageServiceFactory(connection, services.devices, ConnectionManager()) alertrules = AlertRulesClient(services.alerts, services.alertrules) securitydata = SecurityDataClient( services.securitydata, services.fileevents, services.preservationdata, services.savedsearch, storage_service_factory, ) alerts = AlertsClient(services.alerts, alertrules) archive_accessor_mgr = ArchiveAccessorManager(services.archive, storage_service_factory) archive = ArchiveClient(archive_accessor_mgr, services.archive) auditlogs = AuditLogsClient(services.auditlogs) clients = Clients( authority=authority, detectionlists=detectionlists, alerts=alerts, securitydata=securitydata, archive=archive, auditlogs=auditlogs, ) return clients
def test_get_storage_session_calls_session_factory_with_token_provider( self, mock_tmp_auth ): storage_session_manager = ConnectionManager() connection = storage_session_manager.get_storage_connection(mock_tmp_auth) assert type(connection) == Connection
def test_get_storage_session_get_saved_session_initially_returns_none(self,): storage_session_manager = ConnectionManager() assert ( storage_session_manager.get_saved_connection_for_url("testhost.com") is None )
def test_get_storage_session_raises_session_init_error_when_tmp_auth_raises_http_error( self, mock_tmp_auth): mock_tmp_auth.get_storage_url.side_effect = Py42HTTPError(HTTPError()) storage_session_manager = ConnectionManager() with pytest.raises(Py42StorageSessionInitializationError): storage_session_manager.get_storage_connection(mock_tmp_auth)