Skip to content

Commit ef37ba5

Browse files
author
Dominik
authored
Add uptime information for HA and update unit tests (#16)
* Add uptime information and update unit tests * Format using black
1 parent 603a707 commit ef37ba5

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

glances_api/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,4 +150,6 @@ async def get_ha_sensor_data(self) -> dict[str, Any] | None:
150150
sensor_data["docker"]["docker_memory_use"] = round(mem_use / 1024**2, 1)
151151
if data := self.data.get("raid"):
152152
sensor_data["raid"] = data
153+
if data := self.data.get("uptime"):
154+
sensor_data["uptime"] = data
153155
return sensor_data

tests/test_responses.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
"memory_free": 2745.0,
140140
},
141141
"docker": {"docker_active": 2, "docker_cpu_use": 77.2, "docker_memory_use": 1149.6},
142+
"uptime": "3 days, 10:25:20",
142143
}
143144

144145

@@ -186,3 +187,26 @@ async def test_ha_sensor_data(httpx_mock: HTTPXMock):
186187
result = await client.get_ha_sensor_data()
187188

188189
assert result == HA_SENSOR_DATA
190+
191+
192+
@pytest.mark.asyncio
193+
async def test_ha_sensor_data_with_incomplete_container_information(
194+
httpx_mock: HTTPXMock,
195+
):
196+
"""Test the return value for ha sensors when container memory and cpu data is not exposed by glances."""
197+
TEST_RESPONSE = RESPONSE
198+
del TEST_RESPONSE["docker"]["containers"][0]["memory"]["usage"]
199+
del TEST_RESPONSE["docker"]["containers"][0]["cpu"]["total"]
200+
del TEST_RESPONSE["docker"]["containers"][1]["memory"]["usage"]
201+
del TEST_RESPONSE["docker"]["containers"][1]["cpu"]["total"]
202+
203+
TEST_HA_SENSOR_DATA = HA_SENSOR_DATA
204+
TEST_HA_SENSOR_DATA["docker"]["docker_memory_use"] = 0
205+
TEST_HA_SENSOR_DATA["docker"]["docker_cpu_use"] = 0
206+
207+
httpx_mock.add_response(json=TEST_RESPONSE)
208+
209+
client = Glances()
210+
result = await client.get_ha_sensor_data()
211+
212+
assert result == TEST_HA_SENSOR_DATA

0 commit comments

Comments
 (0)