diff --git a/tests/test_clients.py b/tests/test_clients.py index a2949b9..0cb3cd6 100644 --- a/tests/test_clients.py +++ b/tests/test_clients.py @@ -178,7 +178,7 @@ def test_headers(self): def test_read_message(self, rw_client: ReadWriteClient, respx_mock: MockRouter): chars = [[0] * COLS] * ROWS respx_mock.get("https://rw.vestaboard.com/").respond( - json={"currentMessage": {"layout": chars}}, + json={"currentMessage": {"layout": json.dumps(chars)}}, ) message = rw_client.read_message() assert message == chars diff --git a/vesta/clients.py b/vesta/clients.py index d8f46e5..081a848 100644 --- a/vesta/clients.py +++ b/vesta/clients.py @@ -248,9 +248,12 @@ def read_message(self) -> Optional[Rows]: r = self.http.get("") r.raise_for_status() try: - return r.json().get("currentMessage", {}).get("layout") + layout = r.json().get("currentMessage", {}).get("layout") except json.JSONDecodeError: return None + if layout: + return json.loads(layout) + return None def write_message(self, message: Rows) -> bool: """Write a message to the Vestaboard.