From 012509f6839c8009cd2747c86f00e82ed6299165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Wed, 10 Apr 2024 11:36:25 +0200 Subject: [PATCH] Add documentation link for custom integrations in diagnostics (#115336) * Add documentation link for custom integrations in diagnostics * Enable custom integrations in test_download_diagnostics --- .../components/diagnostics/__init__.py | 1 + tests/components/diagnostics/test_init.py | 140 +++++++++++++++++- 2 files changed, 138 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/diagnostics/__init__.py b/homeassistant/components/diagnostics/__init__.py index 5ada7713c33..6c70e0dc110 100644 --- a/homeassistant/components/diagnostics/__init__.py +++ b/homeassistant/components/diagnostics/__init__.py @@ -174,6 +174,7 @@ async def _async_get_json_file_response( all_custom_components = await async_get_custom_components(hass) for cc_domain, cc_obj in all_custom_components.items(): custom_components[cc_domain] = { + "documentation": cc_obj.documentation, "version": cc_obj.version, "requirements": cc_obj.requirements, } diff --git a/tests/components/diagnostics/test_init.py b/tests/components/diagnostics/test_init.py index 3303e51a5a5..dff71d9edbf 100644 --- a/tests/components/diagnostics/test_init.py +++ b/tests/components/diagnostics/test_init.py @@ -80,7 +80,9 @@ async def test_websocket( async def test_download_diagnostics( - hass: HomeAssistant, hass_client: ClientSessionGenerator + hass: HomeAssistant, + hass_client: ClientSessionGenerator, + enable_custom_integrations: None, ) -> None: """Test download diagnostics.""" config_entry = MockConfigEntry(domain="fake_integration") @@ -91,7 +93,73 @@ async def test_download_diagnostics( assert await _get_diagnostics_for_config_entry(hass, hass_client, config_entry) == { "home_assistant": hass_sys_info, - "custom_components": {}, + "custom_components": { + "test": { + "documentation": "http://example.com", + "requirements": [], + "version": "1.2.3", + }, + "test_blocked_version": { + "documentation": None, + "requirements": [], + "version": "1.0.0", + }, + "test_embedded": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_integration_frame": { + "documentation": "http://example.com", + "requirements": [], + "version": "1.2.3", + }, + "test_integration_platform": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_legacy_state_translations": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_legacy_state_translations_bad_data": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package_loaded_executor": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package_loaded_loop": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package_raises_cancelled_error": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package_raises_cancelled_error_config_entry": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_with_services": { + "documentation": None, + "requirements": [], + "version": "1.0", + }, + }, "integration_manifest": { "codeowners": [], "dependencies": [], @@ -112,7 +180,73 @@ async def test_download_diagnostics( hass, hass_client, config_entry, device ) == { "home_assistant": hass_sys_info, - "custom_components": {}, + "custom_components": { + "test": { + "documentation": "http://example.com", + "requirements": [], + "version": "1.2.3", + }, + "test_blocked_version": { + "documentation": None, + "requirements": [], + "version": "1.0.0", + }, + "test_embedded": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_integration_frame": { + "documentation": "http://example.com", + "requirements": [], + "version": "1.2.3", + }, + "test_integration_platform": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_legacy_state_translations": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_legacy_state_translations_bad_data": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package_loaded_executor": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package_loaded_loop": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package_raises_cancelled_error": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_package_raises_cancelled_error_config_entry": { + "documentation": "http://test-package.io", + "requirements": [], + "version": "1.2.3", + }, + "test_with_services": { + "documentation": None, + "requirements": [], + "version": "1.0", + }, + }, "integration_manifest": { "codeowners": [], "dependencies": [],