예제 #1
0
def test_get_pt_object():
    n = Navitia('http://api.navitia.io', 'jdr')
    mock = NavitiaMock(200, {'networks': [{'id': 'network:foo', 'name': 'reseau foo'}]},
                       assert_url='http://api.navitia.io/v1/coverage/jdr/networks/network:foo?depth=0')
    with HTTMock(mock):
        eq_(n.get_pt_object('network:foo', 'network'), {'id': 'network:foo', 'name': 'reseau foo'})

    mock = NavitiaMock(200, {'networks': []})
    with HTTMock(mock):
        eq_(n.get_pt_object('network:foo', 'network'), None)

    mock = NavitiaMock(404, {})
    with HTTMock(mock):
        eq_(n.get_pt_object('network:foo', 'network'), None)
예제 #2
0
    def output(self, key, obj):
        to_return = []

        # for history
        if hasattr(obj, 'history_localization') and isinstance(obj.localizations, list):
            return self._clean_localizations(obj.history_localization)

        navitia = Navitia(current_app.config['NAVITIA_URL'],
                          get_coverage(request),
                          get_token(request))

        if isinstance(obj, dict) and 'localizations' in obj:
            for localization in obj['localizations']:

                response = navitia.get_pt_object(
                    localization['uri'],
                    localization['type'])

                if response and 'name' in response:
                    response["type"] = localization['type']
                    to_return.append(response)
                else:
                    to_return.append(
                        {
                            "id": localization['uri'],
                            "name": "Unable to find object",
                            "type": localization['type']
                        }
                    )
        elif obj.localizations:
            for localization in obj.localizations:
                response = navitia.get_pt_object(
                    localization.uri,
                    localization.type)

                if response and 'name' in response:
                    response["type"] = localization.type
                    to_return.append(response)
                else:
                    to_return.append(
                        {
                            "id": localization.uri,
                            "name": "Unable to find object",
                            "type": localization.type
                        }
                    )
        return self._clean_localizations(to_return)
예제 #3
0
파일: fields.py 프로젝트: CanalTP/Chaos
    def output(self, key, obj):
        to_return = []
        navitia = Navitia(current_app.config['NAVITIA_URL'],
                          get_coverage(request),
                          get_token(request))

        if isinstance(obj, dict) and 'localizations' in obj:
            for localization in obj['localizations']:

                response = navitia.get_pt_object(
                    localization['uri'],
                    localization['type'])

                if response and 'name' in response:
                    response["type"] = localization['type']
                    to_return.append(response)
                else:
                    to_return.append(
                        {
                            "id": localization['uri'],
                            "name": "Unable to find object",
                            "type": localization['type']
                        }
                    )
        elif obj.localizations:
            for localization in obj.localizations:
                response = navitia.get_pt_object(
                    localization.uri,
                    localization.type)

                if response and 'name' in response:
                    response["type"] = localization.type
                    to_return.append(response)
                else:
                    to_return.append(
                        {
                            "id": localization.uri,
                            "name": "Unable to find object",
                            "type": localization.type
                        }
                    )
        return to_return
예제 #4
0
파일: fields.py 프로젝트: Fahmus/Chaos
 def output(self, key, obj):
     if not obj:
         return None
     if obj.type == 'line_section':
         return None
     navitia = Navitia(current_app.config['NAVITIA_URL'],
                       get_coverage(request), get_token(request))
     response = navitia.get_pt_object(obj.uri, obj.type)
     if response and 'name' in response:
         return response['name']
     return 'Unable to find object'
예제 #5
0
파일: fields.py 프로젝트: Tisseo/Chaos
 def output(self, key, obj):
     if not obj:
         return None
     if obj.type == 'line_section':
         return None
     navitia = Navitia(
         current_app.config['NAVITIA_URL'],
         get_coverage(request),
         get_token(request))
     response = navitia.get_pt_object(obj.uri, obj.type)
     if response and 'name' in response:
         return response['name']
     return 'Unable to find object'
예제 #6
0
def test_get_pt_object():
    n = Navitia('http://api.navitia.io', 'jdr')
    mock = NavitiaMock(
        200, {'networks': [{
            'id': 'network:foo',
            'name': 'reseau foo'
        }]},
        assert_url=
        'http://api.navitia.io/v1/coverage/jdr/networks/network:foo?depth=0')
    with HTTMock(mock):
        eq_(n.get_pt_object('network:foo', 'network'), {
            'id': 'network:foo',
            'name': 'reseau foo'
        })

    mock = NavitiaMock(200, {'networks': []})
    with HTTMock(mock):
        eq_(n.get_pt_object('network:foo', 'network'), None)

    mock = NavitiaMock(404, {})
    with HTTMock(mock):
        eq_(n.get_pt_object('network:foo', 'network'), None)
예제 #7
0
파일: fields.py 프로젝트: Fahmus/Chaos
    def output(self, key, obj):
        to_return = []
        navitia = Navitia(current_app.config['NAVITIA_URL'],
                          get_coverage(request), get_token(request))
        for localization in obj.localizations:
            response = navitia.get_pt_object(localization.uri,
                                             localization.type)

            if response and 'name' in response:
                response["type"] = localization.type
                to_return.append(response)
            else:
                to_return.append({
                    "id": localization.uri,
                    "name": "Unable to find object",
                    "type": localization.type
                })
        return to_return
예제 #8
0
def test_navitia_unknown_object_type():
    n = Navitia('http://api.navitia.io', 'jdr')
    with HTTMock(navitia_mock_unknown_object_type):
        n.get_pt_object('network:foo', 'aaaaaaaa')
예제 #9
0
def test_navitia_request_error():
    n = Navitia('http://api.navitia.io', 'jdr')
    with HTTMock(navitia_mock_navitia_error):
        n.get_pt_object('network:foo','network')
예제 #10
0
def test_navitia_unknown_object_type():
    n = Navitia('http://api.navitia.io', 'jdr')
    with HTTMock(navitia_mock_unknown_object_type):
        n.get_pt_object('network:foo4', 'aaaaaaaa')
예제 #11
0
def test_navitia_request_error():
    n = Navitia('http://api.navitia.io', 'jdr')
    with HTTMock(navitia_mock_navitia_error):
        n.get_pt_object('network:foo3', 'network')