コード例 #1
0
def post_workspace_publication(publication_type,
                               workspace,
                               name,
                               *,
                               actor=None,
                               access_rights=None,
                               title=None,
                               bbox=None,
                               crs=None,
                               style_type='sld'):
    assert (bbox is None) == (crs is None), f'bbox={bbox}, crs={crs}'
    access_rights = access_rights or {}
    default_access_rights = {settings.RIGHTS_EVERYONE_ROLE
                             } if not actor else {actor}
    for right_type in ['read', 'write']:
        access_rights[right_type] = access_rights.get(right_type,
                                                      default_access_rights)

    with app.app_context():
        publications.insert_publication(
            workspace, {
                'name': name,
                'title': title or name,
                'publ_type_name': publication_type,
                'uuid': uuid.uuid4(),
                'actor_name': actor,
                'style_type': style_type,
                'access_rights': access_rights,
            })
        if bbox:
            publications.set_bbox(workspace, publication_type, name, bbox, crs)
コード例 #2
0
def delete_layer(workspace, layername):
    publications.set_bbox(workspace,
                          LAYER_TYPE,
                          layername,
                          bbox=(
                              None,
                              None,
                              None,
                              None,
                          ),
                          crs=None)
コード例 #3
0
def delete_map(workspace, layername):
    publications.set_bbox(workspace,
                          MAP_TYPE,
                          layername,
                          bbox=(
                              None,
                              None,
                              None,
                              None,
                          ),
                          crs=None)
コード例 #4
0
def test_geoserver_bbox():
    workspace = 'test_geoserver_bbox_workspace'
    layer = 'test_geoserver_bbox_layer'
    expected_bbox_1 = test_data.SMALL_LAYER_BBOX
    crs = crs_def.EPSG_3857
    no_area_bbox_padding = crs_def.CRSDefinitions[crs].no_area_bbox_padding
    expected_bboxes = [
        ((1571203, 6268895, 1572589, 6269864), (1571203, 6268895, 1572589,
                                                6269864)),
        ((1571203, 6268895, 1571203, 6269864),
         (1571203 - no_area_bbox_padding, 6268895,
          1571203 + no_area_bbox_padding, 6269864)),  # line
        ((1571203, 6268895, 1571203, 6268895),
         (1571203 - no_area_bbox_padding, 6268895 - no_area_bbox_padding,
          1571203 + no_area_bbox_padding,
          6268895 + no_area_bbox_padding)),  # point
        ((None, None, None, None), crs_def.CRSDefinitions[crs].max_bbox),
    ]

    process_client.publish_workspace_layer(
        workspace, layer, style_file='sample/style/small_layer.qml')

    assert_util.assert_wfs_bbox(workspace, layer, expected_bbox_1)
    assert_util.assert_wms_bbox(workspace, layer, expected_bbox_1)

    kwargs = {
        'description': '',
        'title': layer,
        'access_rights': None,
    }

    # test WFS
    for bbox, expected_bbox in expected_bboxes:
        wfs.delete_layer(workspace, layer)
        with app.app_context():
            publications.set_bbox(
                workspace,
                process_client.LAYER_TYPE,
                layer,
                bbox,
                crs,
            )
            wfs.delete_layer(workspace, layer)
            tasks.refresh_wfs.apply(
                args=[workspace, layer],
                kwargs=kwargs,
            )
        assert_util.assert_wfs_bbox(workspace, layer, expected_bbox)

    # test WMS
    for bbox, expected_bbox in expected_bboxes:
        wms.delete_layer(workspace, layer)
        with app.app_context():
            publications.set_bbox(
                workspace,
                process_client.LAYER_TYPE,
                layer,
                bbox,
                crs,
            )
            tasks.refresh_wms.apply(
                args=[workspace, layer, True],
                kwargs=kwargs,
            )
        assert_util.assert_wms_bbox(workspace, layer, expected_bbox)

    # test cascade WMS from QGIS
    for bbox, expected_bbox in expected_bboxes:
        wms.delete_layer(workspace, layer)
        with app.app_context():
            publications.set_bbox(
                workspace,
                process_client.LAYER_TYPE,
                layer,
                bbox,
                crs,
            )
            wms.delete_layer(workspace, layer)
            tasks.refresh_wms.apply(
                args=[workspace, layer, False],
                kwargs=kwargs,
            )
        assert_util.assert_wms_bbox(workspace, layer, expected_bbox)

    process_client.delete_workspace_layer(workspace, layer)
コード例 #5
0
def test_geoserver_bbox():
    workspace = 'test_geoserver_bbox_workspace'
    layer = 'test_geoserver_bbox_layer'
    expected_bbox_1 = test_data.SMALL_LAYER_BBOX
    expected_bboxes = [
        ((1571203, 6268895, 1572589, 6269864), (1571203, 6268895, 1572589,
                                                6269864)),
        ((1571203, 6268895, 1571203, 6269864),
         (1571203 - settings.NO_AREA_BBOX_PADDING, 6268895,
          1571203 + settings.NO_AREA_BBOX_PADDING, 6269864)),  # line
        ((1571203, 6268895, 1571203, 6268895),
         (1571203 - settings.NO_AREA_BBOX_PADDING,
          6268895 - settings.NO_AREA_BBOX_PADDING,
          1571203 + settings.NO_AREA_BBOX_PADDING,
          6268895 + settings.NO_AREA_BBOX_PADDING)),  # point
        ((None, None, None, None), settings.LAYMAN_DEFAULT_OUTPUT_BBOX),
    ]

    process_client.publish_workspace_layer(
        workspace, layer, style_file='sample/style/small_layer.qml')

    assert_util.assert_wfs_bbox(workspace, layer, expected_bbox_1)
    assert_util.assert_wms_bbox(workspace, layer, expected_bbox_1)

    # test WFS
    for bbox, expected_bbox in expected_bboxes:
        wfs.delete_layer(workspace, layer)
        with app.app_context():
            publications.set_bbox(workspace, process_client.LAYER_TYPE, layer,
                                  bbox)
            wfs.delete_layer(workspace, layer)
            tasks.refresh_wfs.apply(
                args=[workspace, layer],
                description=layer,
                title=layer,
                ensure_user=False,
                access_rights=None,
            )
        assert_util.assert_wfs_bbox(workspace, layer, expected_bbox)

    # test WMS
    for bbox, expected_bbox in expected_bboxes:
        wms.delete_layer(workspace, layer)
        with app.app_context():
            publications.set_bbox(workspace, process_client.LAYER_TYPE, layer,
                                  bbox)
            tasks.refresh_wms.apply(
                args=[workspace, layer, True],
                description=layer,
                title=layer,
                ensure_user=False,
                access_rights=None,
            )
        assert_util.assert_wms_bbox(workspace, layer, expected_bbox)

    # test cascade WMS from QGIS
    for bbox, expected_bbox in expected_bboxes:
        wms.delete_layer(workspace, layer)
        with app.app_context():
            publications.set_bbox(workspace, process_client.LAYER_TYPE, layer,
                                  bbox)
            wms.delete_layer(workspace, layer)
            tasks.refresh_wms.apply(
                args=[workspace, layer, False],
                description=layer,
                title=layer,
                ensure_user=False,
                access_rights=None,
            )
        assert_util.assert_wms_bbox(workspace, layer, expected_bbox)

    process_client.delete_workspace_layer(workspace, layer)