From ecdd5ea397922b151ccc87d3f089eaba95ebec86 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:08:23 +0400 Subject: [PATCH 01/13] Fixtures and params in KamereonVehicleLockStatusData for lock-status Added Fixtures for lock-status command, added params to KamereonVehicleLockStatusData --- src/renault_api/kamereon/models.py | 8 ++++++++ .../kamereon/vehicle_data/lock-status.1.json | 15 +++++++++++++++ .../kamereon/vehicle_data/lock-status.2.json | 15 +++++++++++++++ .../kamereon/vehicle_data/lock-status.json | 7 ------- 4 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 tests/fixtures/kamereon/vehicle_data/lock-status.1.json create mode 100644 tests/fixtures/kamereon/vehicle_data/lock-status.2.json delete mode 100644 tests/fixtures/kamereon/vehicle_data/lock-status.json diff --git a/src/renault_api/kamereon/models.py b/src/renault_api/kamereon/models.py index 06f80bf5..f851e360 100644 --- a/src/renault_api/kamereon/models.py +++ b/src/renault_api/kamereon/models.py @@ -380,6 +380,14 @@ class KamereonVehicleCockpitData(KamereonVehicleDataAttributes): class KamereonVehicleLockStatusData(KamereonVehicleDataAttributes): """Kamereon vehicle data lock-status attributes.""" + lockStatus: Optional[str] + doorStatusRearLeft: Optional[str] + doorStatusRearRight: Optional[str] + doorStatusDriver: Optional[str] + doorStatusPassenger: Optional[str] + hatchStatus: Optional[str] + lastUpdateTime: Optional[str] + @dataclass class KamereonVehicleCarAdapterData(KamereonVehicleDataAttributes): diff --git a/tests/fixtures/kamereon/vehicle_data/lock-status.1.json b/tests/fixtures/kamereon/vehicle_data/lock-status.1.json new file mode 100644 index 00000000..28f6e361 --- /dev/null +++ b/tests/fixtures/kamereon/vehicle_data/lock-status.1.json @@ -0,0 +1,15 @@ +{ + "data": { + "type": "Car", + "id": "VF1AAAAA555777999", + "attributes": { + "lockStatus": "locked", + "doorStatusRearLeft": "closed", + "doorStatusRearRight": "closed", + "doorStatusDriver": "closed", + "doorStatusPassenger": "closed", + "hatchStatus": "closed", + "lastUpdateTime": "2022-02-02T13:51:13Z" + } + } +} \ No newline at end of file diff --git a/tests/fixtures/kamereon/vehicle_data/lock-status.2.json b/tests/fixtures/kamereon/vehicle_data/lock-status.2.json new file mode 100644 index 00000000..5be1a9a7 --- /dev/null +++ b/tests/fixtures/kamereon/vehicle_data/lock-status.2.json @@ -0,0 +1,15 @@ +{ + "data": { + "type": "Car", + "id": "VF1AAAAA555777999", + "attributes": { + "lockStatus": "unlocked", + "doorStatusRearLeft": "closed", + "doorStatusRearRight": "closed", + "doorStatusDriver": "closed", + "doorStatusPassenger": "closed", + "hatchStatus": "closed", + "lastUpdateTime": "2022-02-02T13:51:13Z" + } + } +} \ No newline at end of file diff --git a/tests/fixtures/kamereon/vehicle_data/lock-status.json b/tests/fixtures/kamereon/vehicle_data/lock-status.json deleted file mode 100644 index 7b78844c..00000000 --- a/tests/fixtures/kamereon/vehicle_data/lock-status.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "data": { - "type": "Car", - "id": "VF1AAAAA555777999", - "attributes": {} - } -} From a258e67e71d108523cd0c1df22c57dd9f17dea40 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:23:04 +0400 Subject: [PATCH 02/13] Removed fixture for v2 of lock-status Removed fixture for v2 of lock-status --- .../kamereon/vehicle_data/lock-status.2.json | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 tests/fixtures/kamereon/vehicle_data/lock-status.2.json diff --git a/tests/fixtures/kamereon/vehicle_data/lock-status.2.json b/tests/fixtures/kamereon/vehicle_data/lock-status.2.json deleted file mode 100644 index 5be1a9a7..00000000 --- a/tests/fixtures/kamereon/vehicle_data/lock-status.2.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "data": { - "type": "Car", - "id": "VF1AAAAA555777999", - "attributes": { - "lockStatus": "unlocked", - "doorStatusRearLeft": "closed", - "doorStatusRearRight": "closed", - "doorStatusDriver": "closed", - "doorStatusPassenger": "closed", - "hatchStatus": "closed", - "lastUpdateTime": "2022-02-02T13:51:13Z" - } - } -} \ No newline at end of file From 369273d30d605ccfc741a2855d38df7e1b5add9e Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:37:46 +0400 Subject: [PATCH 03/13] Added test and schema for lock-status Added test and schema for lock-status --- src/renault_api/kamereon/schemas.py | 3 ++ tests/kamereon/test_kamereon_vehicle_data.py | 30 ++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/src/renault_api/kamereon/schemas.py b/src/renault_api/kamereon/schemas.py index 83418099..37df42e9 100644 --- a/src/renault_api/kamereon/schemas.py +++ b/src/renault_api/kamereon/schemas.py @@ -42,6 +42,9 @@ models.KamereonVehicleLocationData, base_schema=BaseSchema )() +KamereonVehicleLockStatusDataSchema = marshmallow_dataclass.class_schema( + models.KamereonVehicleLockStatusData, base_schema=BaseSchema +)() KamereonVehicleHvacStatusDataSchema = marshmallow_dataclass.class_schema( models.KamereonVehicleHvacStatusData, base_schema=BaseSchema diff --git a/tests/kamereon/test_kamereon_vehicle_data.py b/tests/kamereon/test_kamereon_vehicle_data.py index 89287493..aec61b41 100644 --- a/tests/kamereon/test_kamereon_vehicle_data.py +++ b/tests/kamereon/test_kamereon_vehicle_data.py @@ -304,6 +304,36 @@ def test_location_v1() -> None: assert vehicle_data.gpsLongitude == 11.1234567 assert vehicle_data.lastUpdateTime == "2020-02-18T16:58:38Z" +def test_lock-status_v1() -> None: + """Test lock-status for lock-status.1.json.""" + response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( + f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicle_data/lock-status.1.json", + schemas.KamereonVehicleDataResponseSchema, + ) + response.raise_for_error_code() + assert response.data is not None + assert response.data.raw_data["attributes"] == { + "lockStatus": "locked", + "doorStatusRearLeft": "closed", + "doorStatusRearRight": "closed", + "doorStatusDriver": "closed", + "doorStatusPassenger": "closed", + "hatchStatus": "closed", + "lastUpdateTime": "2022-02-02T13:51:13Z" + } + + vehicle_data = cast( + models.KamereonVehicleLockStatusData, + response.get_attributes(schemas.KamereonVehicleLockStatusDataSchema), + ) + + assert vehicle_data.lockStatus == "locked" + assert vehicle_data.doorStatusRearLeft == "closed" + assert vehicle_data.doorStatusRearRight == "closed" + assert vehicle_data.doorStatusDriver == "closed" + assert vehicle_data.doorStatusPassenger == "closed" + assert vehicle_data.hatchStatus == "closed" + assert vehicle_data.lastUpdateTime == "2022-02-02T13:51:13Z" def test_location_v2() -> None: """Test vehicle data for location.2.json.""" From 21512fe7d373180afee93f3f988d0cdaa815f098 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:44:05 +0400 Subject: [PATCH 04/13] fixed formating issues fixed formating issues --- tests/kamereon/test_kamereon_vehicle_data.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/kamereon/test_kamereon_vehicle_data.py b/tests/kamereon/test_kamereon_vehicle_data.py index aec61b41..b41d60ce 100644 --- a/tests/kamereon/test_kamereon_vehicle_data.py +++ b/tests/kamereon/test_kamereon_vehicle_data.py @@ -329,9 +329,9 @@ def test_lock-status_v1() -> None: assert vehicle_data.lockStatus == "locked" assert vehicle_data.doorStatusRearLeft == "closed" - assert vehicle_data.doorStatusRearRight == "closed" + assert vehicle_data.doorStatusRearRight == "closed" assert vehicle_data.doorStatusDriver == "closed" - assert vehicle_data.doorStatusPassenger == "closed" + assert vehicle_data.doorStatusPassenger == "closed" assert vehicle_data.hatchStatus == "closed" assert vehicle_data.lastUpdateTime == "2022-02-02T13:51:13Z" From 626d0ee19e37923dacc4593f766b30a3f65a2da0 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 22:44:38 +0400 Subject: [PATCH 05/13] Fix formating and test name Fix formating and test name --- src/renault_api/kamereon/models.py | 2 +- tests/kamereon/test_kamereon_vehicle_data.py | 51 ++++++++++---------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/src/renault_api/kamereon/models.py b/src/renault_api/kamereon/models.py index f851e360..35a6f37c 100644 --- a/src/renault_api/kamereon/models.py +++ b/src/renault_api/kamereon/models.py @@ -387,7 +387,7 @@ class KamereonVehicleLockStatusData(KamereonVehicleDataAttributes): doorStatusPassenger: Optional[str] hatchStatus: Optional[str] lastUpdateTime: Optional[str] - + @dataclass class KamereonVehicleCarAdapterData(KamereonVehicleDataAttributes): diff --git a/tests/kamereon/test_kamereon_vehicle_data.py b/tests/kamereon/test_kamereon_vehicle_data.py index b41d60ce..3b6e934f 100644 --- a/tests/kamereon/test_kamereon_vehicle_data.py +++ b/tests/kamereon/test_kamereon_vehicle_data.py @@ -304,7 +304,31 @@ def test_location_v1() -> None: assert vehicle_data.gpsLongitude == 11.1234567 assert vehicle_data.lastUpdateTime == "2020-02-18T16:58:38Z" -def test_lock-status_v1() -> None: +def test_location_v2() -> None: + """Test vehicle data for location.2.json.""" + response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( + f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicle_data/location.2.json", + schemas.KamereonVehicleDataResponseSchema, + ) + response.raise_for_error_code() + assert response.data is not None + assert response.data.raw_data["attributes"] == { + "gpsDirection": None, + "gpsLatitude": 48.1234567, + "gpsLongitude": 11.1234567, + "lastUpdateTime": "2020-02-18T16:58:38Z", + } + + vehicle_data = cast( + models.KamereonVehicleLocationData, + response.get_attributes(schemas.KamereonVehicleLocationDataSchema), + ) + + assert vehicle_data.gpsLatitude == 48.1234567 + assert vehicle_data.gpsLongitude == 11.1234567 + assert vehicle_data.lastUpdateTime == "2020-02-18T16:58:38Z" + +def test_lock_status_v1() -> None: """Test lock-status for lock-status.1.json.""" response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicle_data/lock-status.1.json", @@ -335,31 +359,6 @@ def test_lock-status_v1() -> None: assert vehicle_data.hatchStatus == "closed" assert vehicle_data.lastUpdateTime == "2022-02-02T13:51:13Z" -def test_location_v2() -> None: - """Test vehicle data for location.2.json.""" - response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( - f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicle_data/location.2.json", - schemas.KamereonVehicleDataResponseSchema, - ) - response.raise_for_error_code() - assert response.data is not None - assert response.data.raw_data["attributes"] == { - "gpsDirection": None, - "gpsLatitude": 48.1234567, - "gpsLongitude": 11.1234567, - "lastUpdateTime": "2020-02-18T16:58:38Z", - } - - vehicle_data = cast( - models.KamereonVehicleLocationData, - response.get_attributes(schemas.KamereonVehicleLocationDataSchema), - ) - - assert vehicle_data.gpsLatitude == 48.1234567 - assert vehicle_data.gpsLongitude == 11.1234567 - assert vehicle_data.lastUpdateTime == "2020-02-18T16:58:38Z" - - def test_charge_mode() -> None: """Test vehicle data for charge-mode.json.""" response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( From 1d562c585d2367939806c15ddc25e73e219e13e9 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 22:46:22 +0400 Subject: [PATCH 06/13] EOL fix EOL fix --- tests/fixtures/kamereon/vehicle_data/lock-status.1.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/fixtures/kamereon/vehicle_data/lock-status.1.json b/tests/fixtures/kamereon/vehicle_data/lock-status.1.json index 28f6e361..dc87a740 100644 --- a/tests/fixtures/kamereon/vehicle_data/lock-status.1.json +++ b/tests/fixtures/kamereon/vehicle_data/lock-status.1.json @@ -12,4 +12,4 @@ "lastUpdateTime": "2022-02-02T13:51:13Z" } } -} \ No newline at end of file +} From 55a1c1f6e9d209737824bcde221b14afcee899e8 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 22:56:50 +0400 Subject: [PATCH 07/13] rename fixture for old test compatibility --- .../vehicle_data/{lock-status.1.json => lock-status.json} | 0 tests/kamereon/test_kamereon_vehicle_data.py | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) rename tests/fixtures/kamereon/vehicle_data/{lock-status.1.json => lock-status.json} (100%) diff --git a/tests/fixtures/kamereon/vehicle_data/lock-status.1.json b/tests/fixtures/kamereon/vehicle_data/lock-status.json similarity index 100% rename from tests/fixtures/kamereon/vehicle_data/lock-status.1.json rename to tests/fixtures/kamereon/vehicle_data/lock-status.json diff --git a/tests/kamereon/test_kamereon_vehicle_data.py b/tests/kamereon/test_kamereon_vehicle_data.py index 3b6e934f..023ec5c0 100644 --- a/tests/kamereon/test_kamereon_vehicle_data.py +++ b/tests/kamereon/test_kamereon_vehicle_data.py @@ -328,10 +328,10 @@ def test_location_v2() -> None: assert vehicle_data.gpsLongitude == 11.1234567 assert vehicle_data.lastUpdateTime == "2020-02-18T16:58:38Z" -def test_lock_status_v1() -> None: - """Test lock-status for lock-status.1.json.""" +def test_lock_status() -> None: + """Test lock-status for lock-status.json.""" response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( - f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicle_data/lock-status.1.json", + f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicle_data/lock-status.json", schemas.KamereonVehicleDataResponseSchema, ) response.raise_for_error_code() From c9d7d954832774b87e7021c7180fe39c1c5205d8 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 23:07:27 +0400 Subject: [PATCH 08/13] Possible fix for a test in CI --- tests/kamereon/test_kamereon_vehicle_data.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/kamereon/test_kamereon_vehicle_data.py b/tests/kamereon/test_kamereon_vehicle_data.py index 023ec5c0..dc64b078 100644 --- a/tests/kamereon/test_kamereon_vehicle_data.py +++ b/tests/kamereon/test_kamereon_vehicle_data.py @@ -343,7 +343,7 @@ def test_lock_status() -> None: "doorStatusDriver": "closed", "doorStatusPassenger": "closed", "hatchStatus": "closed", - "lastUpdateTime": "2022-02-02T13:51:13Z" + "lastUpdateTime": "2022-02-02T13:51:13Z", } vehicle_data = cast( From 4d432867a49ff052d5acbc524025383aa3896c12 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 23:26:56 +0400 Subject: [PATCH 09/13] Update tests/kamereon/test_kamereon_vehicle_data.py Co-authored-by: epenet <6771947+epenet@users.noreply.github.com> --- tests/kamereon/test_kamereon_vehicle_data.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/kamereon/test_kamereon_vehicle_data.py b/tests/kamereon/test_kamereon_vehicle_data.py index dc64b078..f65689cb 100644 --- a/tests/kamereon/test_kamereon_vehicle_data.py +++ b/tests/kamereon/test_kamereon_vehicle_data.py @@ -328,6 +328,7 @@ def test_location_v2() -> None: assert vehicle_data.gpsLongitude == 11.1234567 assert vehicle_data.lastUpdateTime == "2020-02-18T16:58:38Z" + def test_lock_status() -> None: """Test lock-status for lock-status.json.""" response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( From a61d60528f6d78c05ad0a11cfdc438163d35e0bc Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 23:32:41 +0400 Subject: [PATCH 10/13] Update tests/kamereon/test_kamereon_vehicle_data.py Co-authored-by: epenet <6771947+epenet@users.noreply.github.com> --- tests/kamereon/test_kamereon_vehicle_data.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/kamereon/test_kamereon_vehicle_data.py b/tests/kamereon/test_kamereon_vehicle_data.py index f65689cb..d4c35705 100644 --- a/tests/kamereon/test_kamereon_vehicle_data.py +++ b/tests/kamereon/test_kamereon_vehicle_data.py @@ -360,6 +360,7 @@ def test_lock_status() -> None: assert vehicle_data.hatchStatus == "closed" assert vehicle_data.lastUpdateTime == "2022-02-02T13:51:13Z" + def test_charge_mode() -> None: """Test vehicle data for charge-mode.json.""" response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( From 45d85d430aafeb0714822ba9bee114a78ad79cf3 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Wed, 2 Feb 2022 23:41:22 +0400 Subject: [PATCH 11/13] Added CR --- tests/kamereon/test_kamereon_vehicle_data.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/kamereon/test_kamereon_vehicle_data.py b/tests/kamereon/test_kamereon_vehicle_data.py index dc64b078..c0f503d2 100644 --- a/tests/kamereon/test_kamereon_vehicle_data.py +++ b/tests/kamereon/test_kamereon_vehicle_data.py @@ -304,6 +304,7 @@ def test_location_v1() -> None: assert vehicle_data.gpsLongitude == 11.1234567 assert vehicle_data.lastUpdateTime == "2020-02-18T16:58:38Z" + def test_location_v2() -> None: """Test vehicle data for location.2.json.""" response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( From dd22243d501a9b4d5cdf48ca14384247daf99ec1 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Thu, 3 Feb 2022 00:05:51 +0400 Subject: [PATCH 12/13] Added fixture and test for lock-status with unlocked state Added fixture and test for lock-status with unlocked state --- tests/fixtures.py | 2 +- .../{lock-status.json => lock-status.1.json} | 0 .../kamereon/vehicle_data/lock-status.2.json | 15 ++++++++ tests/kamereon/test_kamereon_vehicle_data.py | 38 +++++++++++++++++-- 4 files changed, 51 insertions(+), 4 deletions(-) rename tests/fixtures/kamereon/vehicle_data/{lock-status.json => lock-status.1.json} (100%) create mode 100644 tests/fixtures/kamereon/vehicle_data/lock-status.2.json diff --git a/tests/fixtures.py b/tests/fixtures.py index 6b02c60a..86935af9 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -375,7 +375,7 @@ def inject_get_lock_status(mocked_responses: aioresponses) -> str: return inject_data( mocked_responses, urlpath, - "vehicle_data/lock-status.json", + "vehicle_data/lock-status.1.json", ) diff --git a/tests/fixtures/kamereon/vehicle_data/lock-status.json b/tests/fixtures/kamereon/vehicle_data/lock-status.1.json similarity index 100% rename from tests/fixtures/kamereon/vehicle_data/lock-status.json rename to tests/fixtures/kamereon/vehicle_data/lock-status.1.json diff --git a/tests/fixtures/kamereon/vehicle_data/lock-status.2.json b/tests/fixtures/kamereon/vehicle_data/lock-status.2.json new file mode 100644 index 00000000..ecca7144 --- /dev/null +++ b/tests/fixtures/kamereon/vehicle_data/lock-status.2.json @@ -0,0 +1,15 @@ +{ + "data": { + "type": "Car", + "id": "VF1AAAAA555777999", + "attributes": { + "lockStatus": "unlocked", + "doorStatusRearLeft": "closed", + "doorStatusRearRight": "closed", + "doorStatusDriver": "closed", + "doorStatusPassenger": "closed", + "hatchStatus": "closed", + "lastUpdateTime": "2022-02-02T13:51:13Z" + } + } +} diff --git a/tests/kamereon/test_kamereon_vehicle_data.py b/tests/kamereon/test_kamereon_vehicle_data.py index 6da42838..0af29581 100644 --- a/tests/kamereon/test_kamereon_vehicle_data.py +++ b/tests/kamereon/test_kamereon_vehicle_data.py @@ -330,10 +330,10 @@ def test_location_v2() -> None: assert vehicle_data.lastUpdateTime == "2020-02-18T16:58:38Z" -def test_lock_status() -> None: - """Test lock-status for lock-status.json.""" +def test_lock_status_locked() -> None: + """Test lock-status for lock-status.1.json.""" response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( - f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicle_data/lock-status.json", + f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicle_data/lock-status.1.json", schemas.KamereonVehicleDataResponseSchema, ) response.raise_for_error_code() @@ -362,6 +362,38 @@ def test_lock_status() -> None: assert vehicle_data.lastUpdateTime == "2022-02-02T13:51:13Z" +def test_lock_status_unlocked() -> None: + """Test lock-status for lock-status.2.json.""" + response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( + f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicle_data/lock-status.2.json", + schemas.KamereonVehicleDataResponseSchema, + ) + response.raise_for_error_code() + assert response.data is not None + assert response.data.raw_data["attributes"] == { + "lockStatus": "unlocked", + "doorStatusRearLeft": "closed", + "doorStatusRearRight": "closed", + "doorStatusDriver": "closed", + "doorStatusPassenger": "closed", + "hatchStatus": "closed", + "lastUpdateTime": "2022-02-02T13:51:13Z", + } + + vehicle_data = cast( + models.KamereonVehicleLockStatusData, + response.get_attributes(schemas.KamereonVehicleLockStatusDataSchema), + ) + + assert vehicle_data.lockStatus == "unlocked" + assert vehicle_data.doorStatusRearLeft == "closed" + assert vehicle_data.doorStatusRearRight == "closed" + assert vehicle_data.doorStatusDriver == "closed" + assert vehicle_data.doorStatusPassenger == "closed" + assert vehicle_data.hatchStatus == "closed" + assert vehicle_data.lastUpdateTime == "2022-02-02T13:51:13Z" + + def test_charge_mode() -> None: """Test vehicle data for charge-mode.json.""" response: models.KamereonVehicleDataResponse = fixtures.get_file_content_as_schema( From e027e56766b15f15cafcf4ce585806bac05c8b25 Mon Sep 17 00:00:00 2001 From: FRSTR <52470035+FRSTR@users.noreply.github.com> Date: Thu, 3 Feb 2022 00:09:03 +0400 Subject: [PATCH 13/13] Added samples to docs --- docs/endpoints/vehicle_data.lock-status.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/endpoints/vehicle_data.lock-status.rst b/docs/endpoints/vehicle_data.lock-status.rst index 9bc059b6..4724b90a 100644 --- a/docs/endpoints/vehicle_data.lock-status.rst +++ b/docs/endpoints/vehicle_data.lock-status.rst @@ -6,7 +6,9 @@ lock-status Base url: ``/commerce/v1/accounts/{account_id}/kamereon/kca/car-adapter/v1/cars/{vin}/lock-status`` -Sample return: - Sample data is not yet available for this endpoint. +Samples return: + .. literalinclude:: /../tests/fixtures/kamereon/vehicle_data/lock-status.1.json + :language: JSON - Please check the `Contributor Guide`_ to can provide a sample. + .. literalinclude:: /../tests/fixtures/kamereon/vehicle_data/lock-status.2.json + :language: JSON