Codebase list pypsrp / master tests / test_exceptions.py
master

Tree @master (Download .tar.gz)

test_exceptions.py @masterraw · history · blame

import pytest

from pypsrp.exceptions import AuthenticationError, FragmentError, \
    InvalidPipelineStateError, InvalidPSRPOperation, \
    InvalidRunspacePoolStateError, SerializationError, WinRMError, \
    WinRMTransportError, WSManFaultError


def test_winrm_error():
    with pytest.raises(WinRMError) as exc:
        raise WinRMError("error msg")
    assert str(exc.value) == "error msg"


def test_authentication_error():
    with pytest.raises(AuthenticationError) as exc:
        raise AuthenticationError("auth error")
    assert str(exc.value) == "auth error"


def test_winrm_transport_error():
    with pytest.raises(WinRMTransportError) as exc:
        raise WinRMTransportError("proto", 1234, "response")
    assert str(exc.value) == "Bad PROTO response returned from the server. " \
                             "Code: 1234, Content: 'response'"
    assert exc.value.protocol == "proto"
    assert exc.value.code == 1234
    assert exc.value.response_text == "response"


def test_wsman_fault_error():
    with pytest.raises(WSManFaultError) as exc:
        raise WSManFaultError(1234, "machine", "reason", "provider", "path",
                              "fault")
    assert str(exc.value) == "Received a WSManFault message. (Code: 1234, " \
                             "Machine: machine, Reason: reason, " \
                             "Provider: provider, Provider Path: path, " \
                             "Provider Fault: fault)"
    assert exc.value.code == 1234
    assert exc.value.machine == "machine"
    assert exc.value.reason == "reason"
    assert exc.value.provider == "provider"
    assert exc.value.provider_path == "path"
    assert exc.value.provider_fault == "fault"


def test_wsman_fault_error_empty():
    with pytest.raises(WSManFaultError) as exc:
        raise WSManFaultError(None, None, None, None, None, None)
    assert str(exc.value) == "Received a WSManFault message. (No details " \
                             "returned by the server)"


def test_invalid_runspace_pool_state_error():
    with pytest.raises(InvalidRunspacePoolStateError) as exc:
        raise InvalidRunspacePoolStateError(0, [1, 2], "do action")
    assert str(exc.value) == "Cannot 'do action' on the current state " \
                             "'BeforeOpen', expecting state(s): " \
                             "'Opening, Opened'"


def test_invalid_pipeline_state_error():
    with pytest.raises(InvalidPipelineStateError) as exc:
        raise InvalidPipelineStateError(0, 1, "do action")
    assert str(exc.value) == "Cannot 'do action' on the current state " \
                             "'NotStarted', expecting state(s): 'Running'"


def test_invalid_psrp_operation():
    with pytest.raises(InvalidPSRPOperation) as exc:
        raise InvalidPSRPOperation("invalid psrp operation")
    assert str(exc.value) == "invalid psrp operation"


def test_fragment_error():
    with pytest.raises(FragmentError) as exc:
        raise FragmentError("fragment error")
    assert str(exc.value) == "fragment error"


def test_serialization_error():
    with pytest.raises(SerializationError) as exc:
        raise SerializationError("serialization error")
    assert str(exc.value) == "serialization error"