diff --git a/pyschlage/lock.py b/pyschlage/lock.py index 499d88d..16e9c44 100644 --- a/pyschlage/lock.py +++ b/pyschlage/lock.py @@ -138,7 +138,7 @@ def from_json(cls, auth: Auth, json: dict) -> Lock: _auth=auth, device_id=json["deviceId"], name=json["name"], - model_name=json["modelName"], + model_name=json.get("modelName", ""), device_type=json["devicetypeId"], connected=json.get("connected", False), battery_level=attributes.get("batteryLevel"), diff --git a/tests/test_lock.py b/tests/test_lock.py index 30800c2..181f213 100644 --- a/tests/test_lock.py +++ b/tests/test_lock.py @@ -58,6 +58,13 @@ def test_from_json_wifi_lock_unavailable( assert lock.is_locked is None assert lock.is_jammed is None + def test_from_json_no_model_name( + self, mock_auth: mock.Mock, lock_json: dict[Any, Any] + ) -> None: + lock_json.pop("modelName", None) + lock = Lock.from_json(mock_auth, lock_json) + assert lock.model_name == "" + def test_diagnostics(self, mock_auth: mock.Mock, lock_json: dict) -> None: lock = Lock.from_json(mock_auth, lock_json) want = {