File: test_kamereon_vehicles.py

package info (click to toggle)
python-renault-api 0.5.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,696 kB
  • sloc: python: 7,804; makefile: 2
file content (60 lines) | stat: -rw-r--r-- 2,381 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
"""Tests for Kamereon models."""

import json
import os

import pytest

from tests import fixtures

from renault_api.kamereon import models
from renault_api.kamereon import schemas
from renault_api.kamereon.enums import AssetPictureSize

EXPECTED_SPECS = json.loads(
    fixtures.get_file_content(f"{fixtures.KAMEREON_FIXTURE_PATH}/expected_specs.json")
)


@pytest.mark.parametrize(
    "filename", fixtures.get_json_files(f"{fixtures.KAMEREON_FIXTURE_PATH}/vehicles")
)
def test_vehicles_response(filename: str) -> None:
    """Test vehicles list response."""
    response: models.KamereonVehiclesResponse = fixtures.get_file_content_as_schema(
        filename, schemas.KamereonVehiclesResponseSchema
    )
    response.raise_for_error_code()
    fixtures.ensure_redacted(response.raw_data)

    assert response.vehicleLinks is not None
    for vehicle_link in response.vehicleLinks:
        fixtures.ensure_redacted(vehicle_link.raw_data)

        vehicle_details = vehicle_link.vehicleDetails
        assert vehicle_details
        fixtures.ensure_redacted(vehicle_details.raw_data)

        if os.path.basename(filename) in EXPECTED_SPECS:
            power_in_watts = vehicle_details.reports_charging_power_in_watts()
            generated_specs = {
                "get_brand_label": vehicle_details.get_brand_label(),
                "get_energy_code": vehicle_details.get_energy_code(),
                "get_model_code": vehicle_details.get_model_code(),
                "get_model_label": vehicle_details.get_model_label(),
                "get_picture_small": vehicle_details.get_picture(
                    AssetPictureSize.SMALL
                ),
                "get_picture_large": vehicle_details.get_picture(
                    AssetPictureSize.LARGE
                ),
                "reports_charging_power_in_watts": power_in_watts,
                "uses_electricity": vehicle_details.uses_electricity(),
                "uses_fuel": vehicle_details.uses_fuel(),
                "supports-hvac-status": vehicle_details.supports_endpoint(
                    "hvac-status"
                ),
                "supports-location": vehicle_details.supports_endpoint("location"),
                "charge-uses-kcm": vehicle_details.controls_action_via_kcm("charge"),
            }
            assert EXPECTED_SPECS[os.path.basename(filename)] == generated_specs