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()
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)
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()
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()