Beispiel #1
0
def car_park_space_get_information_no_parking_test():
    star_response = {"records": []}
    provider = StarProvider("http://fake.url", {'Keolis Rennes'}, 'toto', 42)
    with requests_mock.Mocker() as m:
        m.get('http://fake.url?dataset=toto', json=star_response)
        assert provider.get_informations(poi) is None
        assert m.called
Beispiel #2
0
def car_park_space_get_information_no_data_test():
    star_response = {"records": [{"datasetid": "tco-parcsrelais-etat-tr", "fields": {"idparc": "42"}}]}
    provider = StarProvider("http://fake.url", {'Keolis Rennes'}, 'toto', 42, username=None)
    empty_parking = ParkingPlaces(available=None, occupied=None, available_PRM=None, occupied_PRM=None)
    with requests_mock.Mocker() as m:
        m.get('http://fake.url?dataset=toto', json=star_response)
        assert provider.get_informations(poi) == empty_parking
        assert m.called
Beispiel #3
0
def car_park_space_get_new_information_ok_without_PMR_test():
    # Information of PRM is not provided
    parking_places = ParkingPlaces(
        available=4,
        occupied=6,
        total_places=10,
        available_ridesharing=10,
        occupied_ridesharing=20,
        available_electric_vehicle=5,
        occupied_electric_vehicle=10,
        state="OUVERT",
    )
    provider = StarProvider("http://fake.url", {'Keolis Rennes'}, 'new-etat-test', 42, username=None)
    star_response = {
        "records": [
            {
                "datasetid": "tco-parcsrelais-new-etat-tr",
                "fields": {
                    "jrdinfosoliste": 4,
                    "capacitesoliste": 10,
                    "jrdinfocovoiturage": 10,
                    "capacitecovoiturage": 30,
                    "jrdinfoelectrique": 5,
                    "capaciteve": 15,
                    "etatouverture": "OUVERT",
                    "idparc": "42",
                },
            }
        ]
    }

    with requests_mock.Mocker() as m:
        m.get('http://fake.url?dataset=new-etat-test', json=star_response)
        info = provider.get_informations(poi)
        assert info == parking_places
        assert hasattr(info, "available")
        assert hasattr(info, "occupied")
        assert hasattr(info, "total_places")
        assert hasattr(info, "available_ridesharing")
        assert hasattr(info, "occupied_ridesharing")
        assert hasattr(info, "available_electric_vehicle")
        assert hasattr(info, "occupied_electric_vehicle")
        assert hasattr(info, "state")
        assert not hasattr(info, "available_PRM")
        assert hasattr(info, "occupied_PRM")
        assert m.called
Beispiel #4
0
def car_park_space_get_information_ok_test():
    parking_places = ParkingPlaces(available=4,
                                   occupied=3,
                                   available_PRM=2,
                                   occupied_PRM=0)
    star_response = {
        "records": [{
            "fields": {
                "nombreplacesdisponibles": 4,
                "nombreplacesoccupees": 3,
                "nombreplacesdisponiblespmr": 2,
                "nombreplacesoccupeespmr": 0,
                "idparc": "42",
            }
        }]
    }

    provider = StarProvider("http://fake.url", {'Keolis Rennes'}, 'toto', 42)
    with requests_mock.Mocker() as m:
        m.get('http://fake.url?dataset=toto', json=star_response)
        assert provider.get_informations(poi) == parking_places
        assert m.called
Beispiel #5
0
def car_park_space_get_information_ok_without_PMR_test():
    # Information of PRM is not provided
    parking_places = ParkingPlaces(available=4, occupied=3)
    provider = StarProvider("http://fake.url", {'Keolis Rennes'}, 'toto', 42, username=None)
    star_response = {
        "records": [
            {
                "datasetid": "tco-parcsrelais-etat-tr",
                "fields": {"nombreplacesdisponibles": 4, "nombreplacesoccupees": 3, "idparc": "42"},
            }
        ]
    }

    with requests_mock.Mocker() as m:
        m.get('http://fake.url?dataset=toto', json=star_response)
        info = provider.get_informations(poi)
        assert info == parking_places
        assert hasattr(info, "available")
        assert hasattr(info, "occupied")
        assert not hasattr(info, "available_PRM")
        assert not hasattr(info, "occupied_PRM")
        assert m.called
Beispiel #6
0
def car_park_space_get_new_information_ok_test():
    parking_places = ParkingPlaces(
        available=4,
        occupied=6,
        available_PRM=2,
        occupied_PRM=0,
        total_places=10,
        available_ridesharing=10,
        occupied_ridesharing=20,
        available_electric_vehicle=5,
        occupied_electric_vehicle=10,
        state="OUVERT",
    )
    star_response = {
        "records": [
            {
                "datasetid": "tco-parcsrelais-new-etat-tr",
                "fields": {
                    "jrdinfosoliste": 4,
                    "capacitesoliste": 10,
                    "jrdinfopmr": 2,
                    "capacitepmr": 2,
                    "jrdinfocovoiturage": 10,
                    "capacitecovoiturage": 30,
                    "jrdinfoelectrique": 5,
                    "capaciteve": 15,
                    "etatouverture": "OUVERT",
                    "idparc": "42",
                },
            }
        ]
    }

    provider = StarProvider("http://fake.url", {'Keolis Rennes'}, 'test', 42, username=None)
    with requests_mock.Mocker() as m:
        m.get('http://fake.url?dataset=test', json=star_response)
        assert provider.get_informations(poi) == parking_places
        assert m.called
Beispiel #7
0
def car_park_space_get_information_invalid_poi_test():
    provider = StarProvider("http://fake.url", {'Keolis Rennes'}, 'toto', 42)
    invalid_poi = {}
    with requests_mock.Mocker() as m:
        assert provider.get_informations(invalid_poi) is None
        assert not m.called
Beispiel #8
0
def car_park_space_availability_start_support_poi_test():
    """
    STAR car provider support
    """
    provider = StarProvider("fake.url", {'Keolis Rennes'}, 'toto', 42)
    assert provider.support_poi(poi)
Beispiel #9
0
def car_park_space_get_information_test():
    parking_places = ParkingPlaces(available=4,
                                   occupied=3,
                                   available_PRM=2,
                                   occupied_PRM=0)
    provider = StarProvider("fake.url", {'Keolis Rennes'}, 'toto', 42)
    star_response = """
    {
        "records":[
            {
                "fields": {
                    "nombreplacesdisponibles": 4,
                    "nombreplacesoccupees": 3,
                    "nombreplacesdisponiblespmr": 2,
                    "nombreplacesoccupeespmr": 0,
                    "idparc": "42"
                }
            }
        ]
    }
    """
    import json
    provider._call_webservice = MagicMock(
        return_value=json.loads(star_response))
    assert provider.get_informations(poi) == parking_places

    invalid_poi = {}
    assert provider.get_informations(invalid_poi) is None

    provider._call_webservice = MagicMock(return_value=None)
    assert provider.get_informations(poi) is None

    star_response = """
    {
        "records":[
            {
                "fields": {
                    "idparc": "42"
                }
            }
        ]
    }
    """
    empty_parking = ParkingPlaces(available=None,
                                  occupied=None,
                                  available_PRM=None,
                                  occupied_PRM=None)
    provider._call_webservice = MagicMock(
        return_value=json.loads(star_response))
    assert provider.get_informations(poi) == empty_parking

    star_response = """
    {
        "records":[
        ]
    }
    """
    provider._call_webservice = MagicMock(
        return_value=json.loads(star_response))
    assert provider.get_informations(poi) is None

    # Information of PRM is not provided
    parking_places = ParkingPlaces(available=4, occupied=3)
    provider = StarProvider('Keolis Rennes', 'toto', 42)
    star_response = """
    {
        "records":[
            {
                "fields": {
                    "nombreplacesdisponibles": 4,
                    "nombreplacesoccupees": 3,
                    "idparc": "42"
                }
            }
        ]
    }
    """

    provider._call_webservice = MagicMock(
        return_value=json.loads(star_response))
    info = provider.get_informations(poi)
    assert info == parking_places
    assert hasattr(info, "available")
    assert hasattr(info, "occupied")
    assert not hasattr(info, "available_PRM")
    assert not hasattr(info, "occupied_PRM")
Beispiel #10
0
def car_park_space_get_information_none_response_test():
    provider = StarProvider("http://fake.url", {'Keolis Rennes'}, 'toto', 42, username=None)
    with requests_mock.Mocker() as m:
        m.get('http://fake.url?dataset=toto', json=None)
        assert provider.get_informations(poi) is None
        assert m.called