From 3d4ac7ca631515e072a9e907ee8d314542bb7e68 Mon Sep 17 00:00:00 2001
From: Manu <manni@zapto.de>
Date: Tue, 24 Sep 2024 23:00:43 +0200
Subject: [PATCH] Add diagnostics platform to Bring integration (#126695)

---
 homeassistant/components/bring/diagnostics.py | 16 +++++
 .../bring/snapshots/test_diagnostics.ambr     | 69 +++++++++++++++++++
 tests/components/bring/test_diagnostics.py    | 27 ++++++++
 3 files changed, 112 insertions(+)
 create mode 100644 homeassistant/components/bring/diagnostics.py
 create mode 100644 tests/components/bring/snapshots/test_diagnostics.ambr
 create mode 100644 tests/components/bring/test_diagnostics.py

diff --git a/homeassistant/components/bring/diagnostics.py b/homeassistant/components/bring/diagnostics.py
new file mode 100644
index 00000000000..f4193a9993c
--- /dev/null
+++ b/homeassistant/components/bring/diagnostics.py
@@ -0,0 +1,16 @@
+"""Diagnostics support for Bring."""
+
+from __future__ import annotations
+
+from homeassistant.core import HomeAssistant
+
+from . import BringConfigEntry
+from .coordinator import BringData
+
+
+async def async_get_config_entry_diagnostics(
+    hass: HomeAssistant, config_entry: BringConfigEntry
+) -> dict[str, BringData]:
+    """Return diagnostics for a config entry."""
+
+    return config_entry.runtime_data.data
diff --git a/tests/components/bring/snapshots/test_diagnostics.ambr b/tests/components/bring/snapshots/test_diagnostics.ambr
new file mode 100644
index 00000000000..db0801447e1
--- /dev/null
+++ b/tests/components/bring/snapshots/test_diagnostics.ambr
@@ -0,0 +1,69 @@
+# serializer version: 1
+# name: test_diagnostics
+  dict({
+    'b4776778-7f6c-496e-951b-92a35d3db0dd': dict({
+      'listUuid': 'b4776778-7f6c-496e-951b-92a35d3db0dd',
+      'name': 'Baumarkt',
+      'purchase': list([
+        dict({
+          'attributes': list([
+          ]),
+          'itemId': 'Paprika',
+          'specification': 'Rot',
+          'uuid': 'b5d0790b-5f32-4d5c-91da-e29066f167de',
+        }),
+        dict({
+          'attributes': list([
+          ]),
+          'itemId': 'Pouletbrüstli',
+          'specification': 'Bio',
+          'uuid': '72d370ab-d8ca-4e41-b956-91df94795b4e',
+        }),
+      ]),
+      'recently': list([
+        dict({
+          'attributes': list([
+          ]),
+          'itemId': 'Ananas',
+          'specification': '',
+          'uuid': 'fc8db30a-647e-4e6c-9d71-3b85d6a2d954',
+        }),
+      ]),
+      'status': 'REGISTERED',
+      'theme': 'ch.publisheria.bring.theme.home',
+      'uuid': '77a151f8-77c4-47a3-8295-c750a0e69d4f',
+    }),
+    'e542eef6-dba7-4c31-a52c-29e6ab9d83a5': dict({
+      'listUuid': 'e542eef6-dba7-4c31-a52c-29e6ab9d83a5',
+      'name': 'Einkauf',
+      'purchase': list([
+        dict({
+          'attributes': list([
+          ]),
+          'itemId': 'Paprika',
+          'specification': 'Rot',
+          'uuid': 'b5d0790b-5f32-4d5c-91da-e29066f167de',
+        }),
+        dict({
+          'attributes': list([
+          ]),
+          'itemId': 'Pouletbrüstli',
+          'specification': 'Bio',
+          'uuid': '72d370ab-d8ca-4e41-b956-91df94795b4e',
+        }),
+      ]),
+      'recently': list([
+        dict({
+          'attributes': list([
+          ]),
+          'itemId': 'Ananas',
+          'specification': '',
+          'uuid': 'fc8db30a-647e-4e6c-9d71-3b85d6a2d954',
+        }),
+      ]),
+      'status': 'REGISTERED',
+      'theme': 'ch.publisheria.bring.theme.home',
+      'uuid': '77a151f8-77c4-47a3-8295-c750a0e69d4f',
+    }),
+  })
+# ---
diff --git a/tests/components/bring/test_diagnostics.py b/tests/components/bring/test_diagnostics.py
new file mode 100644
index 00000000000..a86de5a0d2d
--- /dev/null
+++ b/tests/components/bring/test_diagnostics.py
@@ -0,0 +1,27 @@
+"""Test for diagnostics platform of the Bring! integration."""
+
+import pytest
+from syrupy.assertion import SnapshotAssertion
+
+from homeassistant.core import HomeAssistant
+
+from tests.common import MockConfigEntry
+from tests.components.diagnostics import get_diagnostics_for_config_entry
+from tests.typing import ClientSessionGenerator
+
+
+@pytest.mark.usefixtures("mock_bring_client")
+async def test_diagnostics(
+    hass: HomeAssistant,
+    hass_client: ClientSessionGenerator,
+    bring_config_entry: MockConfigEntry,
+    snapshot: SnapshotAssertion,
+) -> None:
+    """Test diagnostics."""
+    bring_config_entry.add_to_hass(hass)
+    await hass.config_entries.async_setup(bring_config_entry.entry_id)
+    await hass.async_block_till_done()
+    assert (
+        await get_diagnostics_for_config_entry(hass, hass_client, bring_config_entry)
+        == snapshot
+    )
-- 
GitLab