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
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
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
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())
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