示例#1
0
def test_initialize_api_discovery_unauthorized(mock_config):
    """Test initialize api discovery doesnt break due to exception."""
    with patch(
            "axis.vapix.session_request",
            side_effect=[
                json.dumps(api_discovery_response),
                Unauthorized,
                Unauthorized,
                Unauthorized,
                Unauthorized,
            ],
    ):
        vapix = Vapix(mock_config)
        vapix.initialize_api_discovery()

    assert vapix.basic_device_info is None
    assert vapix.ports is None
    assert vapix.light_control is None
    assert vapix.mqtt is not None
    assert vapix.stream_profiles is None
示例#2
0
def test_initialize_api_discovery(mock_config):
    """Verify that you can initialize API Discovery and that devicelist parameters."""
    with patch(
            "axis.vapix.session_request",
            side_effect=[
                json.dumps(api_discovery_response),
                json.dumps(basic_device_info_response),
                json.dumps(io_port_management_response),
                json.dumps(light_control_response),
                json.dumps(stream_profiles_response),
            ],
    ) as mock_request:
        vapix = Vapix(mock_config)
        vapix.initialize_api_discovery()

    assert vapix.api_discovery
    assert vapix.basic_device_info
    assert vapix.light_control
    assert vapix.mqtt
    assert vapix.stream_profiles

    assert len(mock_request.mock_calls) == 5
    mock_request.assert_has_calls([
        call(
            "mock_post",
            "mock_url/axis-cgi/apidiscovery.cgi",
            json={
                "method": "getApiList",
                "apiVersion": "1.0",
                "context": "Axis library",
            },
        ),
        call(
            "mock_post",
            "mock_url/axis-cgi/basicdeviceinfo.cgi",
            json={
                "method": "getAllProperties",
                "apiVersion": "1.1",
                "context": "Axis library",
            },
        ),
        call(
            "mock_post",
            "mock_url/axis-cgi/io/portmanagement.cgi",
            json={
                "method": "getPorts",
                "apiVersion": "1.0",
                "context": "Axis library",
            },
        ),
        call(
            "mock_post",
            "mock_url/axis-cgi/lightcontrol.cgi",
            json={
                "method": "getLightInformation",
                "apiVersion": "1.1",
                "context": "Axis library",
            },
        ),
        call(
            "mock_post",
            "mock_url/axis-cgi/streamprofile.cgi",
            json={
                "method": "list",
                "apiVersion": "1.0",
                "context": "Axis library",
                "params": {
                    "streamProfileName": []
                },
            },
        ),
    ])

    assert vapix.firmware_version == "9.80.1"
    assert vapix.product_number == "M1065-LW"
    assert vapix.product_type == "Network Camera"
    assert vapix.serial_number == "ACCC12345678"
    assert isinstance(vapix.streaming_profiles[0], StreamProfile)

    assert len(vapix.basic_device_info.values()) == 14
    assert len(vapix.ports.values()) == 1
    assert len(vapix.light_control.values()) == 1
    assert vapix.mqtt is not None
    assert len(vapix.stream_profiles.values()) == 1