コード例 #1
0
def test_siriusxm_serivce_health_on_exception_returns_500(
        patched_rest_client, mock_dynamo_cv_table, programcode):
    patched_rest_client.get.side_effect = Exception
    siriusxm_service = SiriusXmService(
        config=SiriusXmConfig(base_url="https://success"),
        table=mock_dynamo_cv_table,
    )
    response = siriusxm_service.health(programcode, CtsVersion.TWO_DOT_ZERO)
    assert type(response) == VehicleData
    assert response.status == InternalStatusType.INTERNALSERVERERROR
コード例 #2
0
def test_siriusxm_serivce_health_on_success_returns_200(
        programcode, patched_rest_client, mock_dynamo_cv_table):
    patched_rest_client.get.side_effect = mocked_requests_get
    siriusxmservice = SiriusXmService(
        config=SiriusXmConfig(base_url="https://success"),
        table=mock_dynamo_cv_table,
    )
    response = siriusxmservice.health(programcode, CtsVersion.TWO_DOT_ZERO)
    assert type(response) == VehicleData
    assert response.status == InternalStatusType.SUCCESS
    assert response.responsemessage == "HealthCheck passed"
コード例 #3
0
def test_get_vehicledata_returns_500_if_unsuccessful(
    mock_dynamo_cv_table,
    mock_dynamodb,
    setup_siriusxm_service,
    patched_setup_logger,
    programcode,
):
    patched_setup_logger.info.side_effect = Exception
    cv_table = get_main_table(DynamoConfig(table_name=TABLE_NAME))
    config = SiriusXmConfig(base_url=URL, api_key=APIKEY, raw_apikey=RAWAPIKEY)
    uut = SiriusXmService(config=config, table=cv_table)
    response = uut.get_vehicledata(id="TESTREFERENCE", programcode=programcode)
    assert type(response) == VehicleData
    assert response.status == InternalStatusType.INTERNALSERVERERROR
コード例 #4
0
def test_get_vehicledata_returns_200_if_successful(mock_dynamo_cv_table,
                                                   mock_dynamodb,
                                                   setup_siriusxm_service,
                                                   mock_logger):
    cv_table = get_main_table(DynamoConfig(table_name=TABLE_NAME))
    config = SiriusXmConfig(base_url=URL, api_key=APIKEY, raw_apikey=RAWAPIKEY)
    uut = SiriusXmService(config=config, table=cv_table)
    uut.save_vehicledata(generate_valid_cv_data())
    response = uut.get_vehicledata(id="TESTREFERENCE", programcode="infiniti")
    assert type(response) == VehicleData
    assert response.calldate == response.timestamp.strftime("%Y-%m-%d")
    assert response.calltime == response.timestamp.strftime("%H:%M")
    assert response.status == InternalStatusType.SUCCESS
    assert response.referenceid == "TESTREFERENCE"
    assert response.programcode == "infiniti"
コード例 #5
0
def test_siriusxm_serivce_health_on_error_returns_expected_response(
    programcode,
    patched_rest_client,
    mock_dynamo_cv_table,
    base_url,
    status,
    message,
):
    patched_rest_client.get.side_effect = mocked_requests_get
    siriusxmservice = SiriusXmService(
        config=SiriusXmConfig(base_url=base_url),
        table=mock_dynamo_cv_table,
    )
    response = siriusxmservice.health(programcode, CtsVersion.TWO_DOT_ZERO)
    assert type(response) == VehicleData
    assert response.status == status
    assert response.responsemessage == message
コード例 #6
0
def test_save_vehicledata_returns_true_if_successful(mock_dynamodb,
                                                     setup_siriusxm_service,
                                                     mock_logger):
    cv_table = get_main_table(DynamoConfig(table_name=TABLE_NAME))
    config = SiriusXmConfig(base_url=URL, api_key=APIKEY, raw_apikey=RAWAPIKEY)
    uut = SiriusXmService(config=config, table=cv_table)
    cv = generate_valid_cv_data()
    assert uut.save_vehicledata(cv)
    conn = boto3.resource("dynamodb", region_name="us-east-1")
    table = conn.Table(TABLE_NAME)
    item = table.query(
        Limit=1,
        ScanIndexForward=False,
        KeyConditionExpression=Key("request_key").eq("infiniti-TESTREFERENCE"),
    )

    assert item["Items"][0]["latitude"] == Decimal("42.406")
    assert item["Items"][0]["vin"] == cv["vin"]
コード例 #7
0
def setup_siriusxm_service(mock_logger, mock_dynamo_cv_table):
    config = SiriusXmConfig(base_url=URL, api_key=APIKEY, raw_apikey=RAWAPIKEY)
    uut = SiriusXmService(config=config, table=mock_dynamo_cv_table)
    yield uut
コード例 #8
0
def setup_service_manager(
        programcode,
        version: Optional[str] = CtsVersion.ONE_DOT_ZERO) -> ServiceManager:
    config_manager = setup_config_manager()
    version = CtsVersion.ONE_DOT_ZERO if isnull_whitespaceorempty(
        version) else version
    service = None

    if (programcode and programcode.lower() == ProgramCode.NISSAN.name.lower()
            or programcode
            and programcode.lower() == ProgramCode.INFINITI.name.lower()
            or (programcode
                and programcode.lower() == ProgramCode.TOYOTA.name.lower()
                and version == CtsVersion.ONE_DOT_ZERO)):
        service = SiriusXmService(
            config=config_manager.retrieve_config(SiriusXmConfig),
            table=get_main_table(config_manager.retrieve_config(DynamoConfig)),
        )
    elif (programcode and programcode.lower() == ProgramCode.FCA.name.lower()
          and version == CtsVersion.ONE_DOT_ZERO):
        service = FcaService(
            config=config_manager.retrieve_config(FcaConfig),
            table=get_main_table(config_manager.retrieve_config(DynamoConfig)),
            supplementtable=get_supplement_table(
                config_manager.retrieve_config(DynamoConfig)),
        )
    elif (programcode
          and programcode.lower() == ProgramCode.VWCARNET.name.lower()
          and version == CtsVersion.ONE_DOT_ZERO):
        service = VerizonService(
            config=config_manager.retrieve_config(VerizonConfig),
            table=get_main_table(config_manager.retrieve_config(DynamoConfig)),
            supplementtable=get_supplement_table(
                config_manager.retrieve_config(DynamoConfig)),
        )
    elif (programcode
          and programcode.lower() == ProgramCode.VWCARNET.name.lower()
          and version == CtsVersion.TWO_DOT_ZERO):
        service = AerisService(
            config=config_manager.retrieve_config(AerisConfig),
            table=get_main_table(config_manager.retrieve_config(DynamoConfig)),
        )
    elif (programcode
          and programcode.lower() == ProgramCode.PORSCHE.name.lower()
          and version == CtsVersion.ONE_DOT_ZERO):
        service = VodafoneService(
            config=config_manager.retrieve_config(VodafoneConfig),
            table=get_main_table(config_manager.retrieve_config(DynamoConfig)),
            supplementtable=get_supplement_table(
                config_manager.retrieve_config(DynamoConfig)),
        )
    elif (programcode
          and programcode.lower() == ProgramCode.TOYOTA.name.lower()
          and version == CtsVersion.TWO_DOT_ZERO):
        service = TmnaService(
            config=config_manager.retrieve_config(TmnaConfig), )
    elif (programcode
          and programcode.lower() == ProgramCode.SUBARU.name.lower()
          and version == CtsVersion.TWO_DOT_ZERO):
        service = WirelessCarService(
            config=config_manager.retrieve_config(WirelessCarConfig), )
    return ServiceManager(client_service=service)