Exemple #1
0
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()
    }
Exemple #2
0
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
Exemple #3
0
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
    }