예제 #1
0
def test_ogcapi_records_pycsw():
    w = Records(SERVICE_URL)

    assert w.url == 'https://demo.pycsw.org/cite/'
    assert w.url_query_string is None

    api = w.api()
    assert api['components']['parameters'] is not None
    paths = api['paths']
    assert paths is not None
    assert paths['/collections/{collectionId}'] is not None

    conformance = w.conformance()
    assert len(conformance['conformsTo']) == 12

    collections = w.collections()
    assert len(collections) > 0

    record_collections = w.records()
    assert record_collections == ['metadata:main']

    pycsw_cite_demo = w.collection('metadata:main')
    assert pycsw_cite_demo['id'] == 'metadata:main'
    assert pycsw_cite_demo[
        'title'] == 'pycsw OGC CITE demo and Reference Implementation'  # noqa
    assert pycsw_cite_demo['itemType'] == 'record'
    assert w.request == 'https://demo.pycsw.org/cite/collections/metadata:main'  # noqa
    assert w.response is not None
    assert isinstance(w.response, dict)

    pycsw_cite_demo_queryables = w.collection_queryables('metadata:main')
    assert len(pycsw_cite_demo_queryables['properties'].keys()) == 12

    # Minimum of limit param is 1
    with pytest.raises(RuntimeError):
        pycsw_cite_demo_query = w.collection_items('metadata:main', limit=0)

    pycsw_cite_demo_query = w.collection_items('metadata:main', limit=1)
    assert pycsw_cite_demo_query['numberMatched'] == 12
    assert pycsw_cite_demo_query['numberReturned'] == 1
    assert len(pycsw_cite_demo_query['features']) == 1

    pycsw_cite_demo_query = w.collection_items('metadata:main', q='lorem')
    assert pycsw_cite_demo_query['numberMatched'] == 5
    assert pycsw_cite_demo_query['numberReturned'] == 5
    assert len(pycsw_cite_demo_query['features']) == 5

    cql_text = "title LIKE 'Lorem%'"
    pycsw_cite_demo_query = w.collection_items('metadata:main',
                                               filter=cql_text)
    assert pycsw_cite_demo_query['numberMatched'] == 2
    assert pycsw_cite_demo_query['numberReturned'] == 2
    assert len(pycsw_cite_demo_query['features']) == 2

    cql_json = {'op': '=', 'args': [{'property': 'title'}, 'Lorem ipsum']}
    pycsw_cite_demo_query = w.collection_items('metadata:main', cql=cql_json)
    assert pycsw_cite_demo_query['numberMatched'] == 1
    assert pycsw_cite_demo_query['numberReturned'] == 1
    assert len(pycsw_cite_demo_query['features']) == 1
def test_ogcapi_records_pygeoapi():
    w = Records(SERVICE_URL)

    assert w.url == SERVICE_URL
    assert w.url_query_string is None

    api = w.api()
    assert api['components']['parameters'] is not None
    paths = api['paths']
    assert paths is not None
    assert paths['/collections/dutch-metadata'] is not None

    conformance = w.conformance()
    assert len(conformance['conformsTo']) > 8

    collections = w.collections()
    assert len(collections) > 0

    records = w.records()
    assert len(records) == 1

    dutch_metacat = w.collection('dutch-metadata')
    assert dutch_metacat['id'] == 'dutch-metadata'
    assert dutch_metacat[
        'title'] == 'Sample metadata records from Dutch Nationaal georegister'  # noqa
    assert dutch_metacat[
        'description'] == 'Sample metadata records from Dutch Nationaal georegister'  # noqa
    assert w.request == f'{SERVICE_URL}collections/dutch-metadata'
    assert w.response is not None
    assert isinstance(w.response, dict)

    dutch_metacat_queryables = w.collection_queryables('dutch-metadata')
    assert len(dutch_metacat_queryables['properties']) == 11

    # Minimum of limit param is 1
    with pytest.raises(RuntimeError):
        dutch_metacat_query = w.collection_items('dutch-metadata', limit=0)

    dutch_metacat_query = w.collection_items('dutch-metadata', limit=1)
    assert dutch_metacat_query['numberMatched'] == 198
    assert dutch_metacat_query['numberReturned'] == 1
    assert len(dutch_metacat_query['features']) == 1

    dutch_metacat_query = w.collection_items('dutch-metadata', q='Wegpanorama')
    assert dutch_metacat_query['numberMatched'] == 2
    assert dutch_metacat_query['numberReturned'] == 2
    assert len(dutch_metacat_query['features']) == 2
예제 #3
0
def test_ogcapi_records_pygeoapi():
    w = Records(SERVICE_URL)

    assert w.url == 'https://dev.api.weather.gc.ca/msc-wis-dcpc/'
    assert w.url_query_string is None

    api = w.api()
    assert api['components']['parameters'] is not None
    paths = api['paths']
    assert paths is not None
    assert paths['/collections/discovery-metadata'] is not None

    conformance = w.conformance()
    assert len(conformance['conformsTo']) == 8

    collections = w.collections()
    assert len(collections) > 0

    records = w.records()
    assert len(records['features']) > 0

    msc_wis_dcpc = w.collection('discovery-metadata')
    assert msc_wis_dcpc['id'] == 'discovery-metadata'
    assert msc_wis_dcpc['title'] == 'MSC discovery metadata'
    assert msc_wis_dcpc['description'] == 'MSC discovery metadata'
    assert w.request == 'https://dev.api.weather.gc.ca/msc-wis-dcpc/collections/discovery-metadata'  # noqa
    assert w.response is not None
    assert isinstance(w.response, dict)

    msc_wis_dcpc_queryables = w.collection_queryables('discovery-metadata')
    assert len(msc_wis_dcpc_queryables['queryables']) == 7

    # Minimum of limit param is 1
    with pytest.raises(RuntimeError):
        msc_wis_dcpc_query = w.collection_items('discovery-metadata', limit=0)

    msc_wis_dcpc_query = w.collection_items('discovery-metadata', limit=1)
    assert msc_wis_dcpc_query['numberMatched'] == 178
    assert msc_wis_dcpc_query['numberReturned'] == 1
    assert len(msc_wis_dcpc_query['features']) == 1

    msc_wis_dcpc_query = w.collection_items('discovery-metadata', q='metar')
    assert msc_wis_dcpc_query['numberMatched'] == 2
    assert msc_wis_dcpc_query['numberReturned'] == 2
    assert len(msc_wis_dcpc_query['features']) == 2
def test_ogcapi_records_pygeoapi():
    w = Records(SERVICE_URL)

    assert w.url == 'http://52.170.144.218:8000/'
    assert w.url_query_string is None

    api = w.api()
    assert api['components']['parameters'] is not None
    paths = api['paths']
    assert paths is not None
    assert paths['/collections/msc-wis-dcpc'] is not None

    conformance = w.conformance()
    assert len(conformance['conformsTo']) == 8

    collections = w.collections()
    assert len(collections) > 0

    msc_wis_dcpc = w.collection('msc-wis-dcpc')
    assert msc_wis_dcpc['id'] == 'msc-wis-dcpc'
    assert msc_wis_dcpc['title'] == 'MSC WIS DCPC'
    assert msc_wis_dcpc['description'] == 'MSC WIS DCPC'

    msc_wis_dcpc_queryables = w.collection_queryables('msc-wis-dcpc')
    assert len(msc_wis_dcpc_queryables['queryables']) == 7

    # Minimum of limit param is 1
    with pytest.raises(RuntimeError):
        msc_wis_dcpc_query = w.collection_items('msc-wis-dcpc', limit=0)

    msc_wis_dcpc_query = w.collection_items('msc-wis-dcpc', limit=1)
    assert msc_wis_dcpc_query['numberMatched'] == 178
    assert msc_wis_dcpc_query['numberReturned'] == 1
    assert len(msc_wis_dcpc_query['features']) == 1

    msc_wis_dcpc_query = w.collection_items('msc-wis-dcpc', q='metar')
    assert msc_wis_dcpc_query['numberMatched'] == 2
    assert msc_wis_dcpc_query['numberReturned'] == 2
    assert len(msc_wis_dcpc_query['features']) == 2