def test_query_driver(workspace: Workspace, mockpatch: MockPatcher) -> None: assert workspace.pool mock_provisioning_progress = tft.artemis.drivers.ProvisioningProgress( state=tft.artemis.drivers.ProvisioningState.COMPLETE, pool_data=tft.artemis.drivers.PoolData()) mockpatch(workspace.pool, 'update_guest').return_value = Ok(mock_provisioning_progress) assert workspace.query_driver() is workspace cast(MagicMock, workspace.pool.update_guest).assert_called_once_with( workspace.logger, workspace.session, workspace.gr) assert workspace.provisioning_progress is mock_provisioning_progress assert workspace.new_guest_data == { 'pool_data': mock_provisioning_progress.pool_data.serialize() }
def test_query_driver_fail(workspace: Workspace, mockpatch: MockPatcher) -> None: assert workspace.pool mock_failure = tft.artemis.Failure('dummy failure') mock_error: tft.artemis.tasks.DoerReturnType = Error(mock_failure) mockpatch(workspace.pool, 'update_guest').return_value = mock_error mockpatch(workspace, 'handle_error').return_value = Error(mock_failure) assert workspace.query_driver() is workspace cast(MagicMock, workspace.pool.update_guest).assert_called_once_with( workspace.logger, workspace.session, workspace.gr) cast(MagicMock, workspace.handle_error).assert_called_once_with( mock_error, 'failed to update guest') assert workspace.result is not None assert workspace.result.is_error assert workspace.result.unwrap_error() is mock_failure
def test_query_driver_propagate_ssh_info(workspace: Workspace, mockpatch: MockPatcher) -> None: assert workspace.pool mock_provisioning_progress = tft.artemis.drivers.ProvisioningProgress( state=tft.artemis.drivers.ProvisioningState.COMPLETE, pool_data=tft.artemis.drivers.PoolData(), ssh_info=tft.artemis.drivers.PoolImageSSHInfo(username='******', port=79)) mockpatch(workspace.pool, 'update_guest').return_value = Ok(mock_provisioning_progress) assert workspace.query_driver() is workspace cast(MagicMock, workspace.pool.update_guest).assert_called_once_with( workspace.logger, workspace.session, workspace.gr) assert workspace.provisioning_progress is mock_provisioning_progress assert workspace.new_guest_data == { 'pool_data': mock_provisioning_progress.pool_data.serialize(), 'ssh_username': '******', 'ssh_port': 79 }