예제 #1
0
def make_url_count_and_dt_test():
    """
    same as make_url_test but with a count and a from_dt
    """
    timeo = Timeo(
        id='tata',
        timezone='UTC',
        service_url='http://bob.com/tata',
        service_args={
            'a': 'bobette',
            'b': '12'
        },
        from_datetime_step=30,
    )

    url = timeo._make_url(
        MockRoutePoint(route_id='route_tata',
                       line_id='line_toto',
                       stop_id='stop_tutu'),
        count=2,
        from_dt=_timestamp("12:00"),
    )

    # it should be a valid url
    assert validators.url(url)

    assert url.startswith('http://bob.com')
    assert 'a=bobette' in url
    assert 'b=12' in url
    assert 'StopTimeoCode=stop_tutu' in url
    assert 'LineTimeoCode=line_toto' in url
    assert 'Way=route_tata' in url
    # we should have the param we provided
    assert 'NextStopTimeNumber=2' in url
    assert 'NextStopReferenceTime=2016-02-07T12:00:00' in url

    # same as before we only update the seconds of dt
    url = timeo._make_url(
        MockRoutePoint(route_id='route_tata',
                       line_id='line_toto',
                       stop_id='stop_tutu'),
        count=2,
        from_dt=_timestamp("12:00:04"),
    )
    assert 'NextStopReferenceTime=2016-02-07T12:00:00' in url

    url = timeo._make_url(
        MockRoutePoint(route_id='route_tata',
                       line_id='line_toto',
                       stop_id='stop_tutu'),
        count=2,
        from_dt=_timestamp("12:00:59"),
    )
    assert 'NextStopReferenceTime=2016-02-07T12:00:30' in url
예제 #2
0
def make_url_test():
    timeo = Timeo(id='tata',
                  timezone='Europe/Paris',
                  service_url='http://bob.com/tata',
                  service_args={
                      'a': 'bobette',
                      'b': '12'
                  })

    url = timeo._make_url(
        MockRoutePoint(route_id='route_tata',
                       line_id='line_toto',
                       stop_id='stop_tutu'))

    # it should be a valid url
    assert validators.url(url)

    assert url.startswith('http://bob.com')
    assert 'a=bobette' in url
    assert 'b=12' in url
    assert 'StopTimeoCode=stop_tutu' in url
    assert 'LineTimeoCode=line_toto' in url
    assert 'Way=route_tata' in url
    # we did not provide a datetime, we should not have it in the url
    assert 'NextStopReferenceTime' not in url
    # we did not provide a count, we should have the default value
    assert 'NextStopTimeNumber=5' in url
예제 #3
0
def make_url_invalid_code_test():
    """
    test make_url when RoutePoint does not have a mandatory code

    we should not get any url
    """
    timeo = Timeo(id='tata', timezone='Europe/Paris', service_url='http://bob.com/tata',
                  service_args={'a': 'bobette', 'b': '12'})

    url = timeo._make_url(MockRoutePoint(route_id='route_tata', line_id='line_toto', stop_id=None))

    assert url is None
예제 #4
0
def get_next_passage_for_route_point_with_requests_response_model_test():
    '''
    We test a call on Timeo based on a real requests' response model object.

    requests.models.Response() behaves differently from our mock_response
    as a boolean cast is performed on request.models.Response() to return True
    if the http status code is less than 400.

    Hence a Timeo request with a 404 response should raise an error !
    '''
    timeo_test_url = 'http://bob.com/tata'

    with requests_mock.Mocker() as mocker:
        mocker.get(timeo_test_url, status_code=404)

        timeo = Timeo('tata', timeo_test_url, {}, 'UTC')
        timeo._make_url = mock.MagicMock(return_value=timeo_test_url)
        with raises(RealtimeProxyError):
            timeo._get_next_passage_for_route_point(mock.MagicMock())
예제 #5
0
def make_url_test():
    timeo = Timeo(id='tata',
                  timezone='Europe/Paris',
                  service_url='http://bob.com/tata',
                  service_args={
                      'a': 'bobette',
                      'b': '12'
                  })

    url = timeo._make_url(
        MockRoutePoint(route_id='route_tata',
                       line_id='line_toto',
                       stop_id='stop_tutu'))

    # it should be a valid url
    assert validators.url(url)

    assert url.startswith('http://bob.com')
    assert 'a=bobette' in url
    assert 'b=12' in url
    assert 'StopTimeoCode=stop_tutu' in url
    assert 'LineTimeoCode=line_toto' in url
    assert 'Way=route_tata' in url