def test_dispatch_provisioning( workspace: Workspace, monkeypatch: _pytest.monkeypatch.MonkeyPatch) -> None: workspace.new_pool = MagicMock(name='pool1') patch(monkeypatch, workspace, 'dispatch_task') patch(monkeypatch, workspace, 'ungrab_guest_request') assert workspace.dispatch_provisioning() is workspace cast(MagicMock, workspace.dispatch_task).assert_called_once_with( tft.artemis.tasks.acquire_guest_request, workspace.guestname, workspace.new_pool.poolname) cast(MagicMock, workspace.ungrab_guest_request).assert_not_called()
def test_switch_to_provisioning( workspace: Workspace, monkeypatch: _pytest.monkeypatch.MonkeyPatch) -> None: workspace.gr = MagicMock(name='dummy-guest-request') workspace.new_pool = MagicMock(name='dummy-pool') patch(monkeypatch, workspace, 'update_guest_state') assert workspace.switch_to_provisioning() is workspace cast(MagicMock, workspace.update_guest_state).assert_called_once_with( tft.artemis.guest.GuestState.PROVISIONING, current_state=tft.artemis.guest.GuestState.ROUTING, set_values={'poolname': workspace.new_pool.poolname}, pool=workspace.new_pool.poolname)
def test_exit_failover(workspace: Workspace, monkeypatch: _pytest.monkeypatch.MonkeyPatch, caplog: _pytest.logging.LogCaptureFixture) -> None: workspace.current_poolname = 'pool1' workspace.new_pool = MagicMock(name='pool2', poolname='pool2') patch(monkeypatch, tft.artemis.tasks.route_guest_request.metrics.ProvisioningMetrics, 'inc_failover') assert workspace.exit() is workspace assert workspace.result is tft.artemis.tasks.SUCCESS cast( MagicMock, tft.artemis.tasks.route_guest_request.metrics.ProvisioningMetrics. inc_failover).assert_called_once_with('pool1', 'pool2') assert_log(caplog, message='failover: switched pool1 => pool2', levelno=logging.WARNING)
def test_dispatch_provisioning_fail_dispatch( workspace: Workspace, monkeypatch: _pytest.monkeypatch.MonkeyPatch) -> None: workspace.new_pool = MagicMock(name='pool1') mock_error: tft.artemis.tasks.DoerReturnType = Error( tft.artemis.Failure('mock error')) def mock_dispatch_task(*args: Any, **kwargs: Any) -> None: workspace.result = mock_error patch(monkeypatch, workspace, 'dispatch_task').side_effect = mock_dispatch_task patch(monkeypatch, workspace, 'ungrab_guest_request') assert workspace.dispatch_provisioning() is workspace cast(MagicMock, workspace.dispatch_task).assert_called_once_with( tft.artemis.tasks.acquire_guest_request, workspace.guestname, workspace.new_pool.poolname) cast(MagicMock, workspace.ungrab_guest_request).assert_called_once_with( tft.artemis.guest.GuestState.PROVISIONING, tft.artemis.guest.GuestState.ROUTING)