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
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"
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
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"
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
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"]
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
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)