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, LayerInternalWMS

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

        main = Interface(name=u"main")

        layer_wms_1 = LayerInternalWMS(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_2 = LayerInternalWMS(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_group = LayerInternalWMS(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_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 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, LayerInternalWMS, LayerExternalWMS, 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_metadata = [UIMetadata('test', 'v1')]
        layer_internal_wms = LayerInternalWMS(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_metadata = [UIMetadata('test', 'internal_wms')]
        layer_external_wms = LayerExternalWMS(name=u'__test_layer_external_wms', public=True)
        layer_external_wms.interfaces = [main]
        layer_external_wms.ui_metadata = [UIMetadata('test', 'external_wms')]
        layer_wmts = LayerWMTS(name=u'__test_layer_wmts', public=True)
        layer_wmts.interfaces = [main, mobile]
        layer_wmts.ui_metadata = [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_metadata = [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_metadata = [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()
示例#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, Functionality, Interface, \
            LayerV1, LayerInternalWMS, LayerExternalWMS, 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_metadata = [UIMetadata("test", "v1")]
        layer_internal_wms = LayerInternalWMS(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_metadata = [UIMetadata("test", "internal_wms")]
        layer_external_wms = LayerExternalWMS(name=u"__test_layer_external_wms", public=True)
        layer_external_wms.interfaces = [main]
        layer_external_wms.ui_metadata = [UIMetadata("test", "external_wms")]
        layer_wmts = LayerWMTS(name=u"__test_layer_wmts", public=True)
        layer_wmts.interfaces = [main, mobile]
        layer_wmts.ui_metadata = [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_metadata = [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_metadata = [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()
示例#4
0
def layer_v1tov2(session, layer):  # pragma: nocover
    from c2cgeoportal.models import LayerInternalWMS, LayerExternalWMS, LayerWMTS, \
        LayergroupTreeitem, WMTSDimension

    if layer.layer_type == "internal WMS":
        new_layer = LayerInternalWMS()
    elif layer.layer_type == "external WMS":
        new_layer = LayerExternalWMS()
    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.item = new_layer

    if layer.layer_type[-4:] == " WMS":
        new_layer.layer = layer.name
        new_layer.image_type = layer.image_type
        new_layer.style = layer.style
        new_layer.time_mode = layer.time_mode
        new_layer.time_widget = layer.time_widget
    if layer.layer_type == "external WMS":
        new_layer.url = layer.url
        new_layer.is_single_tile = layer.is_single_tile
    elif 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)