예제 #1
0
def test_http_get(mocked_responses: aioresponses,
                  cli_runner: CliRunner) -> None:
    """It exits with a status code of zero."""
    credential_store = FileCredentialStore(os.path.expanduser(CREDENTIAL_PATH))
    credential_store[CONF_LOCALE] = Credential(TEST_LOCALE)
    credential_store[CONF_ACCOUNT_ID] = Credential(TEST_ACCOUNT_ID)
    credential_store[CONF_VIN] = Credential(TEST_VIN)
    credential_store[GIGYA_LOGIN_TOKEN] = Credential(TEST_LOGIN_TOKEN)
    credential_store[GIGYA_PERSON_ID] = Credential(TEST_PERSON_ID)
    credential_store[GIGYA_JWT] = JWTCredential(fixtures.get_jwt())

    fixtures.inject_get_charging_settings(mocked_responses, "single")

    endpoint = ("/commerce/v1/accounts/{account_id}"
                "/kamereon/kca/car-adapter"
                "/v1/cars/{vin}/charging-settings")
    result = cli_runner.invoke(
        __main__.main,
        f"http get {endpoint}",
    )
    assert result.exit_code == 0, result.exception

    expected_output = (
        "{'data': {'type': 'Car', 'id': 'VF1AAAAA555777999', 'attributes': {"
        "'mode': 'scheduled', 'schedules': ["
        "{'id': 1, 'activated': True, "
        "'monday': {'startTime': 'T12:00Z', 'duration': 15}, "
        "'tuesday': {'startTime': 'T04:30Z', 'duration': 420}, "
        "'wednesday': {'startTime': 'T22:30Z', 'duration': 420}, "
        "'thursday': {'startTime': 'T22:00Z', 'duration': 420}, "
        "'friday': {'startTime': 'T12:15Z', 'duration': 15}, "
        "'saturday': {'startTime': 'T12:30Z', 'duration': 30}, "
        "'sunday': {'startTime': 'T12:45Z', 'duration': 45}}"
        "]}}}\n")
    assert expected_output == result.output
예제 #2
0
def test_charge_schedule_show(mocked_responses: aioresponses,
                              cli_runner: CliRunner) -> None:
    """It exits with a status code of zero."""
    initialise_credential_store(include_account_id=True, include_vin=True)
    fixtures.inject_get_charging_settings(mocked_responses)

    result = cli_runner.invoke(__main__.main, "charge schedule show")
    assert result.exit_code == 0, result.exception

    expected_output = ("Mode: scheduled\n"
                       "\n"
                       "Schedule ID: 1 [Active]\n"
                       "Day        Start time    End time    Duration\n"
                       "---------  ------------  ----------  ----------\n"
                       "Monday     13:00         13:15       0:15:00\n"
                       "Tuesday    05:30         12:30       7:00:00\n"
                       "Wednesday  23:30         06:30       7:00:00\n"
                       "Thursday   23:00         06:00       7:00:00\n"
                       "Friday     13:15         13:30       0:15:00\n"
                       "Saturday   13:30         14:00       0:30:00\n"
                       "Sunday     13:45         14:30       0:45:00\n"
                       "\n"
                       "Schedule ID: 2\n"
                       "Day        Start time    End time    Duration\n"
                       "---------  ------------  ----------  ----------\n"
                       "Monday     02:00         02:15       0:15:00\n"
                       "Tuesday    03:00         03:30       0:30:00\n"
                       "Wednesday  04:00         04:45       0:45:00\n"
                       "Thursday   05:00         06:00       1:00:00\n"
                       "Friday     06:00         07:15       1:15:00\n"
                       "Saturday   07:00         08:30       1:30:00\n"
                       "Sunday     08:00         09:45       1:45:00\n")
    assert expected_output == result.output
예제 #3
0
async def test_get_charging_settings(vehicle: RenaultVehicle,
                                     mocked_responses: aioresponses) -> None:
    """Test get_charging_settings."""
    fixtures.inject_get_charging_settings(mocked_responses)
    assert await vehicle.get_charging_settings()
예제 #4
0
def test_charging_settings_deactivate(mocked_responses: aioresponses,
                                      cli_runner: CliRunner) -> None:
    """It exits with a status code of zero."""
    initialise_credential_store(include_account_id=True, include_vin=True)
    fixtures.inject_get_charging_settings(mocked_responses)
    url = fixtures.inject_set_charge_schedule(mocked_responses, "schedules")

    result = cli_runner.invoke(__main__.main, "charge schedule deactivate 1")
    assert result.exit_code == 0, result.exception

    expected_json = {
        "data": {
            "attributes": {
                "schedules": [
                    {
                        "id": 1,
                        "activated": False,
                        "monday": {
                            "duration": 15,
                            "startTime": "T12:00Z"
                        },
                        "tuesday": {
                            "duration": 420,
                            "startTime": "T04:30Z"
                        },
                        "wednesday": {
                            "duration": 420,
                            "startTime": "T22:30Z"
                        },
                        "thursday": {
                            "duration": 420,
                            "startTime": "T22:00Z"
                        },
                        "friday": {
                            "duration": 15,
                            "startTime": "T12:15Z"
                        },
                        "saturday": {
                            "duration": 30,
                            "startTime": "T12:30Z"
                        },
                        "sunday": {
                            "duration": 45,
                            "startTime": "T12:45Z"
                        },
                    },
                    {
                        "id": 2,
                        "activated": False,
                        "monday": {
                            "startTime": "T01:00Z",
                            "duration": 15
                        },
                        "tuesday": {
                            "startTime": "T02:00Z",
                            "duration": 30
                        },
                        "wednesday": {
                            "startTime": "T03:00Z",
                            "duration": 45
                        },
                        "thursday": {
                            "startTime": "T04:00Z",
                            "duration": 60
                        },
                        "friday": {
                            "startTime": "T05:00Z",
                            "duration": 75
                        },
                        "saturday": {
                            "startTime": "T06:00Z",
                            "duration": 90
                        },
                        "sunday": {
                            "startTime": "T07:00Z",
                            "duration": 105
                        },
                    },
                ]
            },
            "type": "ChargeSchedule",
        }
    }
    expected_output = "{'schedules': [{'id': 1, 'activated': True, "

    request: RequestCall = mocked_responses.requests[("POST", URL(url))][0]

    assert expected_json == request.kwargs["json"]
    assert result.output.startswith(expected_output)
예제 #5
0
def test_charging_settings_set(mocked_responses: aioresponses,
                               cli_runner: CliRunner) -> None:
    """It exits with a status code of zero."""
    initialise_credential_store(include_account_id=True, include_vin=True)
    fixtures.inject_get_charging_settings(mocked_responses, "multi")
    url = fixtures.inject_set_charge_schedule(mocked_responses, "schedules")

    monday = "--monday clear"
    friday = "--friday T23:30Z,480"
    saturday = "--saturday 19:30,120"
    result = cli_runner.invoke(
        __main__.main, f"charge schedule set 1 {monday} {friday} {saturday}")
    assert result.exit_code == 0, result.exception

    expected_json = {
        "data": {
            "attributes": {
                "schedules": [
                    {
                        "id": 1,
                        "activated": True,
                        "monday": None,
                        "tuesday": {
                            "startTime": "T00:00Z",
                            "duration": 450
                        },
                        "wednesday": {
                            "startTime": "T00:00Z",
                            "duration": 450
                        },
                        "thursday": {
                            "startTime": "T00:00Z",
                            "duration": 450
                        },
                        "friday": {
                            "startTime": "T23:30Z",
                            "duration": 480
                        },
                        "saturday": {
                            "startTime": "T18:30Z",
                            "duration": 120
                        },
                        "sunday": {
                            "startTime": "T00:00Z",
                            "duration": 450
                        },
                    },
                    {
                        "id": 2,
                        "activated": True,
                        "monday": {
                            "startTime": "T23:30Z",
                            "duration": 15
                        },
                        "tuesday": {
                            "startTime": "T23:30Z",
                            "duration": 15
                        },
                        "wednesday": {
                            "startTime": "T23:30Z",
                            "duration": 15
                        },
                        "thursday": {
                            "startTime": "T23:30Z",
                            "duration": 15
                        },
                        "friday": {
                            "startTime": "T23:30Z",
                            "duration": 15
                        },
                        "saturday": {
                            "startTime": "T23:30Z",
                            "duration": 15
                        },
                        "sunday": {
                            "startTime": "T23:30Z",
                            "duration": 15
                        },
                    },
                    {
                        "id": 3,
                        "activated": False,
                        "monday": None,
                        "tuesday": None,
                        "wednesday": None,
                        "thursday": None,
                        "friday": None,
                        "saturday": None,
                        "sunday": None,
                    },
                    {
                        "id": 4,
                        "activated": False,
                        "monday": None,
                        "tuesday": None,
                        "wednesday": None,
                        "thursday": None,
                        "friday": None,
                        "saturday": None,
                        "sunday": None,
                    },
                    {
                        "id": 5,
                        "activated": False,
                        "monday": None,
                        "tuesday": None,
                        "wednesday": None,
                        "thursday": None,
                        "friday": None,
                        "saturday": None,
                        "sunday": None,
                    },
                ],
            },
            "type": "ChargeSchedule",
        }
    }
    expected_output = "{'schedules': [{'id': 1, 'activated': True, "
    request: RequestCall = mocked_responses.requests[("POST", URL(url))][0]
    assert expected_json == request.kwargs["json"]
    assert result.output.startswith(expected_output)