diff options
Diffstat (limited to 'tests/unittests/sources/test_azure.py')
-rw-r--r-- | tests/unittests/sources/test_azure.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/unittests/sources/test_azure.py b/tests/unittests/sources/test_azure.py index b3f7b1bc..6251b7ed 100644 --- a/tests/unittests/sources/test_azure.py +++ b/tests/unittests/sources/test_azure.py @@ -13,6 +13,7 @@ import requests from cloudinit import distros, dmi, helpers, subp, url_helper from cloudinit.net import dhcp +from cloudinit.reporting.handlers import HyperVKvpReportingHandler from cloudinit.sources import UNSET from cloudinit.sources import DataSourceAzure as dsaz from cloudinit.sources import InvalidMetaDataException @@ -301,6 +302,17 @@ def patched_reported_ready_marker_path(azure_ds, patched_markers_dir_path): yield reported_ready_marker +@pytest.fixture +def telemetry_reporter(tmp_path): + kvp_file_path = tmp_path / "kvp_pool_file" + kvp_file_path.write_bytes(b"") + reporter = HyperVKvpReportingHandler(kvp_file_path=str(kvp_file_path)) + + dsaz.instantiated_handler_registry.register_item("telemetry", reporter) + yield reporter + dsaz.instantiated_handler_registry.unregister_item("telemetry") + + def fake_http_error_for_code(status_code: int): response_failure = requests.Response() response_failure.status_code = status_code @@ -4378,3 +4390,24 @@ class TestValidateIMDSMetadata: } assert azure_ds.validate_imds_network_metadata(imds_md) is False + + +class TestReportFailureToHost: + def test_report(self, azure_ds, caplog, telemetry_reporter): + error = errors.ReportableError(reason="test") + assert azure_ds._report_failure_to_host(error) is True + assert ( + "KVP handler not enabled, skipping host report." not in caplog.text + ) + + report = { + "key": "PROVISIONING_REPORT", + "value": error.as_description(), + } + assert report in list(telemetry_reporter._iterate_kvps(0)) + + def test_report_skipped_without_telemtry(self, azure_ds, caplog): + error = errors.ReportableError(reason="test") + + assert azure_ds._report_failure_to_host(error) is False + assert "KVP handler not enabled, skipping host report." in caplog.text |