diff --git a/src/libeagle/connection.py b/src/libeagle/connection.py index c658382..33db605 100644 --- a/src/libeagle/connection.py +++ b/src/libeagle/connection.py @@ -127,20 +127,20 @@ async def device_details(self, address: str) -> dict: for detail in device_details.iter(): details[detail.tag] = detail.text - for component in xml.findall("Component"): + components = xml.find("Components").findall("Component") + for component in components: component_data = {} - for detail in component.iter(): - + for detail in component: if detail.tag == "Variables": component_data["Variables"] = [] - for variable in component.iter(): - component_data["Components"]["Variables"].append(variable.text) + for variable in detail: + component_data["Variables"].append(variable.text) else: component_data[detail.tag] = detail.text - details["Components"].append(component_data) + details["Components"].append(component_data) return details @@ -196,23 +196,23 @@ async def device_query( for detail in device_details.iter(): query[detail.tag] = detail.text - for component in xml.findall("Component"): + for component in xml.find("Components").findall("Component"): component_data = {} - for detail in component.iter(): + for detail in component: if detail.tag == "Variables": - component_data["Variables"] = [] + component_data["Variables"] = {} - for variable in detail.iter("Variable"): + for variable in detail: key = variable.findtext("Name") value = variable.findtext("Value") component_data["Variables"][key] = value else: component_data[detail.tag] = detail.text - query["Components"].append(component_data) + query["Components"].append(component_data) return query diff --git a/tests/test_eagle200.py b/tests/test_eagle200.py index 65d9473..0878cf1 100644 --- a/tests/test_eagle200.py +++ b/tests/test_eagle200.py @@ -41,6 +41,7 @@ async def test_eagle200(self): assert "Name" in details assert "HardwareAddress" in details assert "Components" in details + assert len(details["Components"]) > 0 for detail in details["Components"]: assert "Name" in detail @@ -58,6 +59,7 @@ async def test_eagle200(self): assert "Name" in query assert "HardwareAddress" in query assert "Components" in query + assert len(query["Components"]) > 0 for component in query["Components"]: @@ -75,6 +77,7 @@ async def test_eagle200(self): assert "Name" in query assert "HardwareAddress" in query assert "Components" in query + assert len(query["Components"]) > 0 for component in query["Components"]: