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
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