예제 #1
0
    def setUp(self):  # noqa
        # Always see the diff
        # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff
        self.maxDiff = None

        from c2cgeoportal.models import DBSession, \
            Theme, LayerGroup, Interface, LayerWMS, ServerOGC

        TestPoint.__table__.create(bind=DBSession.bind, checkfirst=True)

        main = Interface(name=u"main")

        layer_wms_1 = LayerWMS(name=u"__test_layer_time_1", public=True)
        layer_wms_1.layer = "test_wmstime"
        layer_wms_1.time_mode = "single"
        layer_wms_1.interfaces = [main]
        layer_wms_1.server_ogc = ServerOGC(name="__test_server_ogc", type="mapserver", image_type="image/jpeg")

        layer_wms_2 = LayerWMS(name=u"__test_layer_time_2", public=True)
        layer_wms_2.layer = "test_wmstime2"
        layer_wms_2.time_mode = "single"
        layer_wms_2.interfaces = [main]
        layer_wms_2.server_ogc = ServerOGC(name="__test_server_ogc", type="mapserver", image_type="image/jpeg")

        layer_wms_group = LayerWMS(name=u"__test_layer_time_group", public=True)
        layer_wms_group.layer = "test_wmstimegroup"
        layer_wms_group.time_mode = "range"
        layer_wms_group.time_widget = "datepicker"
        layer_wms_group.interfaces = [main]
        layer_wms_group.server_ogc = ServerOGC(name="__test_server_ogc", type="mapserver", image_type="image/jpeg")

        layer_group_1 = LayerGroup(name=u"__test_layer_group_1")
        layer_group_1.children = [layer_wms_1, layer_wms_2]

        layer_group_2 = LayerGroup(name=u"__test_layer_group_2")
        layer_group_2.children = [layer_wms_1]

        layer_group_3 = LayerGroup(name=u"__test_layer_group_3")
        layer_group_3.children = [layer_wms_1, layer_wms_2, layer_wms_group]

        layer_group_4 = LayerGroup(name=u"__test_layer_group_4")
        layer_group_4.children = [layer_wms_group]

        theme = Theme(name=u"__test_theme")
        theme.interfaces = [main]
        theme.children = [
            layer_group_1, layer_group_2, layer_group_3, layer_group_4
        ]

        DBSession.add_all([theme])

        transaction.commit()
예제 #2
0
def layer_v1tov2(session, layer):  # pragma: nocover
    from c2cgeoportal.models import ServerOGC, LayerWMS, LayerWMTS, \
        LayergroupTreeitem, WMTSDimension

    if layer.layer_type == "internal WMS" or layer.layer_type == "external WMS":
        # use the first one
        new_layer = LayerWMS()
        image_type = layer.image_type
        if layer.image_type is None:
            image_type = 'image/png'
        server_ogc = session.query(ServerOGC).filter(
            ServerOGC.url == layer.url,
            ServerOGC.image_type == image_type, ServerOGC.is_single_tile ==
            layer.is_single_tile).one()
        new_layer.server_ogc = server_ogc
    elif layer.layer_type == "WMTS":
        new_layer = LayerWMTS()

    new_layer.name = layer.name
    new_layer.public = layer.public
    new_layer.geo_table = layer.geo_table
    new_layer.interfaces = layer.interfaces

    for link in layer.parents_relation:
        new_link = LayergroupTreeitem()
        new_link.ordering = link.ordering
        new_link.treegroup_id = link.treegroup_id
        new_link.group = link.group
        new_link.item = new_layer

    if layer.layer_type[-4:] == " WMS":
        new_layer.layer = layer.name
        new_layer.style = layer.style
        new_layer.time_mode = layer.time_mode
        new_layer.time_widget = layer.time_widget

    if layer.layer_type == "WMTS":
        new_layer.url = layer.url
        new_layer.layer = layer.name
        new_layer.style = layer.style
        new_layer.matrix_set = layer.matrix_set
        new_layer.image_type = layer.image_type

        if layer.dimensions is not None:
            dimensions = loads(layer.dimensions)
            for name, value in dimensions.items():
                session.add(WMTSDimension(name, value, new_layer))

    layer_add_ui_metadata(layer, new_layer, session)

    session.add(new_layer)
예제 #3
0
    def setUp(self):  # noqa
        # Always see the diff
        # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff
        self.maxDiff = None

        from c2cgeoportal.models import DBSession, \
            Theme, LayerGroup, Interface, ServerOGC, LayerWMS, UIMetadata

        desktop = Interface(name=u"desktop")

        server_ogc_internal = ServerOGC(name="__test_server_ogc_internal", type="mapserver", image_type="image/png")

        layer_wms = LayerWMS(name=u"__test_layer_internal_wms", public=True)
        layer_wms.layer = "__test_layer_internal_wms"
        layer_wms.server_ogc = server_ogc_internal
        layer_wms.interfaces = [desktop]
        layer_wms.ui_metadatas = [
            UIMetadata("string", "string"),
            UIMetadata("list", "1, 2, a"),
            UIMetadata("boolean", "y"),
            UIMetadata("boolean2", "no"),
            UIMetadata("boolean3", "Hello"),
            UIMetadata("integer", "1"),
            UIMetadata("float", "5.5"),
            UIMetadata("date", "Sep 25 2003"),
            UIMetadata("time", "10:36:28"),
            UIMetadata("datetime", "Sep 25 10:36:28 BRST 2003"),
            UIMetadata("date2", "Sep 25 10:36:28 BRST 2003"),
            UIMetadata("time2", "Sep 25 10:36:28 BRST 2003"),
            UIMetadata("datetime2", "Hello"),
            UIMetadata("url1", "http://example.com/hi?a=b#c"),
            UIMetadata("url2", "static:///path/icon.png"),
            UIMetadata("url3", "static://static/path/icon.png"),
            UIMetadata("url4", "static://cgxp/path/icon.png"),
            UIMetadata("url5", "static://project:static/path/icon.png"),
            UIMetadata("url6", "static://project:cgxp/path/icon.png"),
            UIMetadata("url7", "config://server"),
            UIMetadata("url8", "config://server/index.html"),
            UIMetadata("url9", "/dummy/static/icon.png"),
            UIMetadata("url10", "dummy/static/icon.png"),
            UIMetadata("url11", "https:///static/icon.png"),
            UIMetadata("url12", "static://test"),
            UIMetadata("url13", "static://test/"),
            UIMetadata("url14", "config:///static/icon.png"),
            UIMetadata("url15", "config://unknown_server"),
            UIMetadata("url16", "https://"),
            UIMetadata("url17", "https:///"),
            UIMetadata("url18", "https:///static"),
            UIMetadata("url19", ""),
            UIMetadata("url20", "/"),
            UIMetadata("unknown", "Hello"),
        ]

        layer_group = LayerGroup(name=u"__test_layer_group")
        layer_group.children = [layer_wms]

        theme = Theme(name=u"__test_theme")
        theme.interfaces = [desktop]
        theme.children = [layer_group]

        DBSession.add(theme)

        transaction.commit()
예제 #4
0
    def setUp(self):  # noqa
        # Always see the diff
        # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff
        self.maxDiff = None

        from c2cgeoportal.models import DBSession, \
            Theme, LayerGroup, Functionality, Interface, \
            LayerV1, ServerOGC, LayerWMS, LayerWMTS, \
            UIMetadata, WMTSDimension

        main = Interface(name=u"main")
        mobile = Interface(name=u"mobile")
        min_levels = Interface(name=u"min_levels")

        layer_v1 = LayerV1(name=u"__test_layer_v1", public=True)
        layer_v1.interfaces = [main]
        layer_v1.ui_metadatas = [UIMetadata("test", "v1")]

        server_ogc_internal = ServerOGC(name="__test_server_ogc_internal", type="mapserver", image_type="image/jpeg")
        server_ogc_external = ServerOGC(name="__test_server_ogc_external", url="internal_url", image_type="image/jpeg")

        layer_internal_wms = LayerWMS(name=u"__test_layer_internal_wms", public=True)
        layer_internal_wms.layer = "__test_layer_internal_wms"
        layer_internal_wms.interfaces = [main, min_levels]
        layer_internal_wms.ui_metadatas = [UIMetadata("test", "internal_wms")]
        layer_internal_wms.server_ogc = server_ogc_internal

        layer_external_wms = LayerWMS(name=u"__test_layer_external_wms", public=True)
        layer_external_wms.interfaces = [main]
        layer_external_wms.ui_metadatas = [UIMetadata("test", "external_wms")]
        layer_external_wms.server_ogc = server_ogc_external

        layer_wmts = LayerWMTS(name=u"__test_layer_wmts", public=True)
        layer_wmts.interfaces = [main, mobile]
        layer_wmts.ui_metadatas = [UIMetadata("test", "wmts")]
        layer_wmts.dimensions = [WMTSDimension("year", "2015")]

        layer_group_1 = LayerGroup(name=u"__test_layer_group_1")
        layer_group_1.children = [layer_v1, layer_internal_wms, layer_external_wms, layer_wmts]
        layer_group_1.ui_metadatas = [UIMetadata("test", "group_1")]

        layer_group_2 = LayerGroup(name=u"__test_layer_group_2")
        layer_group_2.children = [layer_wmts, layer_internal_wms, layer_external_wms]

        layer_group_3 = LayerGroup(name=u"__test_layer_group_3")
        layer_group_3.children = [layer_wmts, layer_internal_wms, layer_external_wms]

        layer_group_4 = LayerGroup(name=u"__test_layer_group_4")
        layer_group_4.children = [layer_group_2]

        theme = Theme(name=u"__test_theme")
        theme.interfaces = [main, mobile]
        theme.ui_metadatas = [UIMetadata("test", "theme")]
        theme.children = [
            layer_group_1, layer_group_2
        ]
        theme_layer = Theme(name=u"__test_theme_layer")
        theme_layer.interfaces = [min_levels]
        theme_layer.children = [
            layer_internal_wms
        ]

        functionality1 = Functionality(name=u"test_name", value=u"test_value_1")
        functionality2 = Functionality(name=u"test_name", value=u"test_value_2")
        theme.functionalities = [functionality1, functionality2]

        DBSession.add_all([theme, theme_layer])

        transaction.commit()