def setup_method(self, _): import transaction from sqlalchemy import func from geoalchemy2 import WKTElement from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import FullTextSearch entry1 = FullTextSearch() entry1.label = "label 1" entry1.layer_name = "layer1" entry1.ts = func.to_tsvector("french", "soleil travail") entry1.the_geom = WKTElement("POINT(-90 -45)", 21781) entry1.public = True entry2 = FullTextSearch() entry2.label = "label 2" entry2.layer_name = "layer2" entry2.ts = func.to_tsvector("french", "pluie semaine") entry2.the_geom = WKTElement("POINT(-90 -45)", 21781) entry1.public = True entry3 = FullTextSearch() entry3.label = "label 3" entry3.layer_name = "layer2" entry3.ts = func.to_tsvector("french", "vent neige") entry3.the_geom = WKTElement("POINT(-90 -45)", 21781) entry1.public = True DBSession.add_all([entry1, entry2, entry3]) transaction.commit()
def setup_method(self, _): from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, LayerWMS, RestrictionArea, Interface from c2cgeoportal_commons.models.static import User ogc_server_internal = create_default_ogcserver() role1 = Role(name="__test_role1", description="__test_role1") user1 = User(username="******", password="******", settings_role=role1, roles=[role1]) user1.email = "Tarenpion" main = Interface(name="main") layer1 = LayerWMS("testpoint_group_name", public=False) layer1.layer = "testpoint_group" layer1.ogc_server = ogc_server_internal layer1.interfaces = [main] layer2 = LayerWMS("testpoint_protected_2_name", public=False) layer2.layer = "testpoint_protected_2" layer2.ogc_server = ogc_server_internal layer2.interfaces = [main] area = "POLYGON((-100 30, -100 50, 100 50, 100 30, -100 30))" area = WKTElement(area, srid=21781) restricted_area1 = RestrictionArea("__test_ra1", "", [layer1, layer2], [role1], area) DBSession.add_all([user1, role1, layer1, layer2, restricted_area1]) DBSession.flush() transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None # pylint: disable=invalid-name self._tables = [] from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role from c2cgeoportal_commons.models.static import User setup_db() role1 = Role(name="__test_role1") user1 = User(username="******", password="******", settings_role=role1, roles=[role1]) user1.email = "*****@*****.**" role2 = Role(name="__test_role2", extent=WKTElement("POLYGON((1 2, 1 4, 3 4, 3 2, 1 2))", srid=21781)) user2 = User(username="******", password="******", settings_role=role2, roles=[role2]) DBSession.add_all([user1, user2]) DBSession.flush() self.role1_id = role1.id transaction.commit()
def setup_method(self, _): import transaction from sqlalchemy import func from geoalchemy2 import WKTElement from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import FullTextSearch, Role, Interface from c2cgeoportal_commons.models.static import User user1 = User(username="******", password="******") role1 = Role(name="__test_role1", description="__test_role1") user1.role_name = role1.name user2 = User(username="******", password="******") role2 = Role(name="__test_role2", description="__test_role2") user2.role_name = role2.name entry1 = FullTextSearch() entry1.label = "label1" entry1.layer_name = "layer1" entry1.ts = func.to_tsvector("french", "soleil travail") entry1.the_geom = WKTElement("POINT(-90 -45)", 21781) entry1.public = True entry2 = FullTextSearch() entry2.label = "label2" entry2.layer_name = "layer2" entry2.ts = func.to_tsvector("french", "pluie semaine") entry2.the_geom = WKTElement("POINT(-90 -45)", 21781) entry2.public = False entry3 = FullTextSearch() entry3.label = "label3" entry3.layer_name = "layer3" entry3.ts = func.to_tsvector("french", "vent neige") entry3.the_geom = WKTElement("POINT(-90 -45)", 21781) entry3.public = False entry3.role = role2 entry4 = FullTextSearch() entry4.label = "label4" entry4.layer_name = "layer1" entry4.ts = func.to_tsvector("french", "soleil travail") entry4.the_geom = WKTElement("POINT(-90 -45)", 21781) entry4.public = True entry5 = FullTextSearch() entry5.label = "label5" entry5.ts = func.to_tsvector("french", "params") entry5.public = True entry5.params = {"floor": 5} entry5.actions = [{"action": "add_layer", "data": "layer1"}] entry6 = FullTextSearch() entry6.label = "label6" entry6.ts = func.to_tsvector("french", "params") entry6.interface = Interface("main") entry6.public = True DBSession.add_all([user1, user2, role1, role2, entry1, entry2, entry3, entry4, entry5, entry6]) transaction.commit()
def setup_method(self, _): from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, LayerWMS, RestrictionArea, Interface from c2cgeoportal_commons.models.static import User ogc_server_internal, _ = create_default_ogcserver() user1 = User(username="******", password="******") role1 = Role(name="__test_role1", description="__test_role1") user1.role_name = role1.name user1.email = "Tarenpion" main = Interface(name="main") layer1 = LayerWMS("testpoint_group_name", public=False) layer1.layer = "testpoint_group" layer1.ogc_server = ogc_server_internal layer1.interfaces = [main] layer2 = LayerWMS("testpoint_protected_2_name", public=False) layer2.layer = "testpoint_protected_2" layer2.ogc_server = ogc_server_internal layer2.interfaces = [main] area = "POLYGON((-100 30, -100 50, 100 50, 100 30, -100 30))" area = WKTElement(area, srid=21781) restricted_area1 = RestrictionArea("__test_ra1", "", [layer1, layer2], [role1], area) DBSession.add_all([user1, role1, layer1, layer2, restricted_area1]) DBSession.flush() transaction.commit()
def setup_method(self, _): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, Functionality from c2cgeoportal_commons.models.static import User create_default_ogcserver() role1 = Role(name="__test_role1") user1 = User(username="******", password="******", role=role1) role2 = Role(name="__test_role2") user2 = User(username="******", password="******", role=role2) functionality1 = Functionality("__test_s", "db") functionality2 = Functionality("__test_a", "db1") functionality3 = Functionality("__test_a", "db2") role2.functionalities = [ functionality1, functionality2, functionality3 ] DBSession.add_all([user1, user2, role1, role2]) transaction.commit()
def setup_method(self, _): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Functionality, Role from c2cgeoportal_commons.models.static import User create_default_ogcserver() role1 = Role(name="__test_role1") user1 = User(username="******", password="******", settings_role=role1, roles=[role1]) role2 = Role(name="__test_role2") user2 = User(username="******", password="******", settings_role=role2, roles=[role2]) role3 = Role(name="__test_role3") role4 = Role(name="__test_role4") user3 = User( username="******", password="******", roles=[role3, role4], settings_role=role3 ) functionality1 = Functionality("__test_s", "db") functionality2 = Functionality("__test_a", "db1") functionality3 = Functionality("__test_a", "db2") functionality4 = Functionality("__test_b", "db") role2.functionalities = [functionality1, functionality2, functionality3] role3.functionalities = [functionality1, functionality2] role4.functionalities = [functionality2, functionality3, functionality4] DBSession.add_all([user1, user2, user3, role1, role2]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import LayerWMS, \ Theme, LayerGroup, Interface ogc_server, _ = create_default_ogcserver() main = Interface(name="desktop2") layer = LayerWMS(name="__test_layer", public=True) layer.layers = "__test_layer" layer.interfaces = [main] layer.ogc_server = ogc_server layer_group = LayerGroup(name="__test_layer_group") layer_group.children = [layer, layer_group] theme = Theme(name="__test_theme") theme.children = [layer_group] theme.interfaces = [main] DBSession.add_all([layer, layer_group, theme]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None # pylint: disable=invalid-name self._tables = [] from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.static import OAuth2Client, User user1 = User(username="******", password="******") user1.is_password_changed = True user1.email = "*****@*****.**" user2 = User(username="******", password="******") user2.email = "*****@*****.**" client = OAuth2Client() client.client_id = "qgis" client.secret = "1234" client.redirect_uri = "http://127.0.0.1:7070/" session = DBSession() session.add_all([user1, user2, client]) session.flush() transaction.commit()
def setup_method(self, _): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, Functionality from c2cgeoportal_commons.models.static import User create_default_ogcserver() role1 = Role(name="__test_role1") user1 = User( username="******", password="******", role=role1 ) role2 = Role(name="__test_role2") user2 = User( username="******", password="******", role=role2 ) functionality1 = Functionality("__test_s", "db") functionality2 = Functionality("__test_a", "db1") functionality3 = Functionality("__test_a", "db2") role2.functionalities = [functionality1, functionality2, functionality3] DBSession.add_all([user1, user2, role1, role2]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Interface, LayerGroup, LayerWMS, Metadata, Theme main = Interface(name="desktop") ogc_server = create_default_ogcserver() layer_noscale = LayerWMS(name="__test_layer_noscale", public=True) layer_noscale.layer = "test_noscale" layer_noscale.interfaces = [main] layer_noscale.ogc_server = ogc_server layer_minscale = LayerWMS(name="__test_layer_minscale", public=True) layer_minscale.layer = "test_minscale" layer_minscale.interfaces = [main] layer_minscale.ogc_server = ogc_server layer_maxscale = LayerWMS(name="__test_layer_maxscale", public=True) layer_maxscale.layer = "test_maxscale" layer_maxscale.interfaces = [main] layer_maxscale.ogc_server = ogc_server layer_boothscale = LayerWMS(name="__test_layer_boothscale", public=True) layer_boothscale.layer = "test_boothscale" layer_boothscale.interfaces = [main] layer_boothscale.ogc_server = ogc_server layer_metadatascale = LayerWMS(name="__test_layer_metadatascale", public=True) layer_metadatascale.layer = "test_boothscale" layer_metadatascale.interfaces = [main] layer_metadatascale.ogc_server = ogc_server layer_metadatascale.metadatas = [ Metadata("minResolution", "100"), Metadata("maxResolution", "1000") ] layer_group = LayerGroup(name="__test_layer_group") layer_group.children = [ layer_noscale, layer_minscale, layer_maxscale, layer_boothscale, layer_metadatascale, ] theme = Theme(name="__test_theme") theme.interfaces = [main] theme.children = [layer_group] DBSession.add_all([theme]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import LayerWMS, Theme, Interface, LayerGroup create_default_ogcserver() main = Interface(name="main") mobile = Interface(name="mobile") layer = LayerWMS(name="__test_layer") layer.interfaces = [main, mobile] mobile_only_layer = LayerWMS(name="__test_mobile_only_layer") mobile_only_layer.interfaces = [mobile] desktop_only_layer = LayerWMS(name="__test_desktop_only_layer") desktop_only_layer.interfaces = [main] group = LayerGroup(name="__test_layer_group") group.children = [layer, mobile_only_layer, desktop_only_layer] theme = Theme(name="__test_theme") theme.children = [group] theme.interfaces = [main, mobile] mobile_only_group = LayerGroup(name="__test_mobile_only_layer_group") mobile_only_group.children = [layer] mobile_only_theme = Theme(name="__test_mobile_only_theme") mobile_only_theme.children = [mobile_only_group] mobile_only_theme.interfaces = [mobile] desktop_only_group = LayerGroup(name="__test_desktop_only_layer_group") desktop_only_group.children = [layer] desktop_only_theme = Theme(name="__test_desktop_only_theme") desktop_only_theme.children = [desktop_only_group] desktop_only_theme.interfaces = [main] # the following theme should not appear in the list of themes on desktop # nor on mobile # It should be accessible by explicitly loading it in mobile though mobile_private_group = LayerGroup( name="__test_mobile_private_layer_group") mobile_private_group.children = [layer] mobile_private_theme = Theme(name="__test_mobile_private_theme") mobile_private_theme.children = [mobile_private_group] DBSession.add_all([ layer, mobile_only_layer, desktop_only_layer, theme, mobile_only_theme, desktop_only_theme, mobile_private_theme, ]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Interface, LayerWMS, RestrictionArea, Role from c2cgeoportal_commons.models.static import User setup_db() user1 = User(username="******", password="******") role1 = Role(name="__test_role1", description="__test_role1") user1.roles = [role1] user1.email = "Tarenpion" user2 = User(username="******", password="******") role2 = Role(name="__test_role2", description="__test_role2") user2.roles = [role2] user2.email = "Tarenpion" ogc_server_internal = create_default_ogcserver() main = Interface(name="main") layer1 = LayerWMS("layer_1", public=False) layer1.layer = "layer_1" layer1.ogc_server = ogc_server_internal layer1.interfaces = [main] layer2 = LayerWMS("layer_2", public=False) layer2.layer = "layer_2" layer2.ogc_server = ogc_server_internal layer2.interfaces = [main] layer3 = LayerWMS("layer_3", public=False) layer3.layer = "layer_3" layer3.ogc_server = ogc_server_internal layer3.interfaces = [main] area = "POLYGON((-100 30, -100 50, 100 50, 100 30, -100 30))" area = WKTElement(area, srid=21781) restricted_area1 = RestrictionArea("__test_ra1", "", [layer1, layer2], [role1], area, readwrite=True) area = "POLYGON((-100 0, -100 20, 100 20, 100 0, -100 0))" area = WKTElement(area, srid=21781) restricted_area2 = RestrictionArea("__test_ra2", "", [layer1, layer2, layer3], [role2], area) DBSession.add_all( [user1, user2, role1, role2, restricted_area1, restricted_area2]) transaction.commit()
def setup_method(self, _): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role from c2cgeoportal_commons.models.static import User r = Role(name="__test_role") u = User(username="******", password="******", role=r) DBSession.add_all([r, u]) transaction.commit()
def setUp(self): # noqa # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None self.clean() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.static import User from c2cgeoportal_commons.models.main import \ Theme, LayerGroup, Interface, LayerWMS, LayerWMTS, Role, RestrictionArea main = Interface(name=u"desktop") role = Role(name=u"__test_role") user = User(username=u"__test_user", password=u"__test_user", role=role) user.email = "*****@*****.**" ogc_server_internal, _ = create_default_ogcserver() layer_wms = LayerWMS(name=u"__test_layer_wms", public=True) layer_wms.layer = "__test_public_layer" layer_wms.interfaces = [main] layer_wms.ogc_server = ogc_server_internal layer_wms_private = LayerWMS(name=u"__test_layer_wms_private", public=True) layer_wms_private.layer = "__test_private_layer" layer_wms_private.public = False layer_wms_private.interfaces = [main] layer_wms_private.ogc_server = ogc_server_internal layer_wmts = LayerWMTS(name=u"__test_layer_wmts", public=True) layer_wmts.url = "http://example.com/1.0.0/WMTSCapabilities.xml" layer_wmts.layer = "map" layer_wmts.interfaces = [main] layer_wmts_private = LayerWMTS(name=u"__test_layer_wmts_private", public=True) layer_wmts_private.url = "http://example.com/1.0.0/WMTSCapabilities.xml" layer_wmts_private.layer = "map" layer_wmts_private.public = False layer_wmts_private.interfaces = [main] layer_group = LayerGroup(name=u"__test_layer_group") layer_group.children = [layer_wms, layer_wms_private, layer_wmts, layer_wmts_private] theme = Theme(name=u"__test_theme") theme.interfaces = [main] theme.children = [layer_group] restriction_area = RestrictionArea( name=u"__test_ra1", layers=[layer_wms_private, layer_wmts_private], roles=[role] ) DBSession.add_all([theme, restriction_area, user]) transaction.commit()
def setup_method(self, _): setup_module() import transaction from sqlalchemy import Column, ForeignKey, types from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship from c2cgeoportal_commons.models import DBSession from c2cgeoportal_geoportal.lib.dbreflection import _AssociationProxy # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None Base = declarative_base(bind=DBSession.c2c_rw_bind) # noqa class Child(Base): __tablename__ = "child" id = Column(types.Integer, primary_key=True) name = Column(types.Unicode) custom_order = Column(types.Integer) def __init__(self, name, custom_order): self.name = name self.custom_order = custom_order class Parent(Base): __tablename__ = "parent" id = Column(types.Integer, primary_key=True) child1_id = Column(types.Integer, ForeignKey("child.id")) child2_id = Column(types.Integer, ForeignKey("child.id")) other = Column(types.String) readonly = Column(types.String, info={"readonly": True}) child1_ = relationship(Child, primaryjoin=(child1_id == Child.id)) child1 = _AssociationProxy("child1_", "name") child1_id.info["association_proxy"] = "child1" child2_ = relationship(Child, primaryjoin=(child2_id == Child.id)) child2 = _AssociationProxy("child2_", "name", nullable=False, order_by="custom_order") child2_id.info["association_proxy"] = "child2" Child.__table__.create() Parent.__table__.create() self._tables = [Parent.__table__, Child.__table__] DBSession.add_all([Child("foo", 2), Child("zad", 1), Child("bar", 2)]) transaction.commit() self.metadata = Base.metadata self.cls = Parent
def setup_method(self, _): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role from c2cgeoportal_commons.models.static import User r = Role(name="__test_role") u = User( username="******", password="******", role=r ) DBSession.add_all([u, r]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Theme, LayerGroup, Interface, LayerWMS, Metadata main = Interface(name="desktop") ogc_server, _ = create_default_ogcserver() layer_noscale = LayerWMS(name="__test_layer_noscale", public=True) layer_noscale.layer = "test_noscale" layer_noscale.interfaces = [main] layer_noscale.ogc_server = ogc_server layer_minscale = LayerWMS(name="__test_layer_minscale", public=True) layer_minscale.layer = "test_minscale" layer_minscale.interfaces = [main] layer_minscale.ogc_server = ogc_server layer_maxscale = LayerWMS(name="__test_layer_maxscale", public=True) layer_maxscale.layer = "test_maxscale" layer_maxscale.interfaces = [main] layer_maxscale.ogc_server = ogc_server layer_boothscale = LayerWMS(name="__test_layer_boothscale", public=True) layer_boothscale.layer = "test_boothscale" layer_boothscale.interfaces = [main] layer_boothscale.ogc_server = ogc_server layer_metadatascale = LayerWMS(name="__test_layer_metadatascale", public=True) layer_metadatascale.layer = "test_boothscale" layer_metadatascale.interfaces = [main] layer_metadatascale.ogc_server = ogc_server layer_metadatascale.metadatas = [ Metadata("minResolution", "100"), Metadata("maxResolution", "1000"), ] layer_group = LayerGroup(name="__test_layer_group") layer_group.children = [layer_noscale, layer_minscale, layer_maxscale, layer_boothscale, layer_metadatascale] theme = Theme(name="__test_theme") theme.interfaces = [main] theme.children = [layer_group] DBSession.add_all([theme]) transaction.commit()
def create_default_ogcserver(): import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import OGCServer transaction.commit() ogcserver = OGCServer(name="__test_ogc_server") ogcserver.url = mapserv_url ogcserver_external = OGCServer(name="__test_external_ogc_server") ogcserver_external.url = mapserv_url + "?external=true&" DBSession.add_all([ogcserver, ogcserver_external]) transaction.commit() return ogcserver, ogcserver_external
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None setup_db() self._tables = [] import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import ( OGCSERVER_AUTH_NOAUTH, Interface, LayerGroup, Role, Theme, TreeItem, ) from c2cgeoportal_commons.models.static import User for treeitem in DBSession.query(TreeItem).all(): DBSession.delete(treeitem) self.role = Role(name="__test_role") self.user = User(username="******", password="******", settings_role=self.role, roles=[self.role]) self.main = Interface(name="main") self.ogc_server = create_default_ogcserver() self.ogc_server.auth = OGCSERVER_AUTH_NOAUTH self.metadata = None self.layer_ids = [] self.layer_group_1 = LayerGroup(name="__test_layer_group_1") theme = Theme(name="__test_theme") theme.interfaces = [self.main] theme.children = [self.layer_group_1] DBSession.add_all( [self.main, self.user, self.role, theme, self.layer_group_1]) transaction.commit()
def setup_db(): """ Cleanup the database """ cleanup_db() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role DBSession.add_all([Role(name) for name in ("anonymous", "registered", "intranet")]) transaction.commit() c2cgeoportal_geoportal.lib.ogc_server_wms_url_ids = None c2cgeoportal_geoportal.lib.ogc_server_wfs_url_ids = None caching.init_region({"backend": "dogpile.cache.null"}, "std") caching.init_region({"backend": "dogpile.cache.null"}, "obj") caching.invalidate_region()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None cleanup_db() self._tables = [] import transaction from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, Interface, TreeItem, Theme, \ LayerGroup, OGCSERVER_AUTH_NOAUTH from c2cgeoportal_commons.models.static import User for treeitem in DBSession.query(TreeItem).all(): DBSession.delete(treeitem) self.role = Role(name="__test_role") self.user = User( username="******", password="******", role=self.role ) self.main = Interface(name="main") self.ogc_server, external_ogc_server = create_default_ogcserver() self.ogc_server.auth = OGCSERVER_AUTH_NOAUTH external_ogc_server.auth = OGCSERVER_AUTH_NOAUTH self.metadata = None self.layer_ids = [] self.layer_group_1 = LayerGroup(name="__test_layer_group_1") theme = Theme(name="__test_theme") theme.interfaces = [self.main] theme.children = [self.layer_group_1] DBSession.add_all([self.main, self.user, self.role, theme, self.layer_group_1]) transaction.commit()
def setup_method(self, _): import transaction from sqlalchemy import Column, types, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base from c2cgeoportal_commons.models import DBSession from c2cgeoportal_geoportal.lib.dbreflection import _AssociationProxy # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None Base = declarative_base(bind=DBSession.c2c_rw_bind) # noqa class Child(Base): __tablename__ = "child" id = Column(types.Integer, primary_key=True) name = Column(types.Unicode) def __init__(self, name): self.name = name class Parent(Base): __tablename__ = "parent" id = Column(types.Integer, primary_key=True) child1_id = Column(types.Integer, ForeignKey("child.id")) child2_id = Column(types.Integer, ForeignKey("child.id")) child1_ = relationship(Child, primaryjoin=(child1_id == Child.id)) child1 = _AssociationProxy("child1_", "name") child2_ = relationship(Child, primaryjoin=(child2_id == Child.id)) child2 = _AssociationProxy("child2_", "name") Child.__table__.create() Parent.__table__.create() self._tables = [Parent.__table__, Child.__table__] DBSession.add_all([Child("foo"), Child("bar")]) transaction.commit() self.metadata = Base.metadata self.cls = Parent
def setup_method(self, _): self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, LayerWMS, RestrictionArea, Interface, \ OGCServer, OGCSERVER_TYPE_MAPSERVER, OGCSERVER_AUTH_STANDARD from c2cgeoportal_commons.models.static import User cleanup_db() create_default_ogcserver() ogcserver_jpeg = OGCServer(name="__test_ogc_server_jpeg") ogcserver_jpeg.url = mapserv_url ogcserver_jpeg.image_type = "image/jpeg" ogcserver_jpeg.type = OGCSERVER_TYPE_MAPSERVER ogcserver_jpeg.auth = OGCSERVER_AUTH_STANDARD ogcserver_png = OGCServer(name="__test_ogc_server_png") ogcserver_png.url = mapserv_url ogcserver_png.image_type = "image/png" ogcserver_png.type = OGCSERVER_TYPE_MAPSERVER ogcserver_png.auth = OGCSERVER_AUTH_STANDARD ogcserver_wfs1 = OGCServer(name="__test_ogc_server_wfs1") ogcserver_wfs1.url = mapserv_url ogcserver_wfs1.url_wfs = "config://srv" ogcserver_wfs1.image_type = "image/png" ogcserver_wfs1.type = OGCSERVER_TYPE_MAPSERVER ogcserver_wfs1.auth = OGCSERVER_AUTH_STANDARD ogcserver_wfs2 = OGCServer(name="__test_ogc_server_wfs2") ogcserver_wfs2.url = "config://srv" ogcserver_wfs2.url_wfs = mapserv_url ogcserver_wfs2.image_type = "image/png" ogcserver_wfs2.type = OGCSERVER_TYPE_MAPSERVER ogcserver_wfs2.auth = OGCSERVER_AUTH_STANDARD role = Role(name="__test_role", description="__test_role") user = User(username="******", password="******") user.role_name = "__test_role" main = Interface(name="main") layer1 = LayerWMS("__test_layer1", public=False) layer1.layer = "__test_private_layer1" layer1.ogc_server = ogcserver_jpeg layer1.interfaces = [main] layer2 = LayerWMS("__test_layer2", public=False) layer2.layer = "__test_private_layer2" layer2.ogc_server = ogcserver_png layer2.interfaces = [main] layer3 = LayerWMS("__test_layer3", public=False) layer3.layer = "__test_private_layer3" layer3.ogc_server = ogcserver_wfs1 layer3.interfaces = [main] layer4 = LayerWMS("__test_layer4", public=False) layer4.layer = "__test_private_layer4" layer4.ogc_server = ogcserver_wfs2 layer4.interfaces = [main] restricted_area = RestrictionArea("__test_ra", "", [layer1, layer2, layer3, layer4], [role]) DBSession.add_all([ user, restricted_area ]) transaction.commit()
def setUp(self): # noqa # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None self.clean() from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.static import User from c2cgeoportal_commons.models.main import \ Theme, LayerGroup, Interface, LayerWMS, LayerWMTS, Role, RestrictionArea main = Interface(name=u"desktop") role = Role(name=u"__test_role") user = User(username=u"__test_user", password=u"__test_user", role=role) user.email = "*****@*****.**" ogc_server_internal, _ = create_default_ogcserver() layer_wms = LayerWMS(name=u"__test_layer_wms", public=True) layer_wms.layer = "__test_public_layer" layer_wms.interfaces = [main] layer_wms.ogc_server = ogc_server_internal layer_wms_private = LayerWMS(name=u"__test_layer_wms_private", public=True) layer_wms_private.layer = "__test_private_layer" layer_wms_private.public = False layer_wms_private.interfaces = [main] layer_wms_private.ogc_server = ogc_server_internal layer_wmts = LayerWMTS(name=u"__test_layer_wmts", public=True) layer_wmts.url = "http://example.com/1.0.0/WMTSCapabilities.xml" layer_wmts.layer = "map" layer_wmts.interfaces = [main] layer_wmts_private = LayerWMTS(name=u"__test_layer_wmts_private", public=True) layer_wmts_private.url = "http://example.com/1.0.0/WMTSCapabilities.xml" layer_wmts_private.layer = "map" layer_wmts_private.public = False layer_wmts_private.interfaces = [main] layer_group = LayerGroup(name=u"__test_layer_group") layer_group.children = [ layer_wms, layer_wms_private, layer_wmts, layer_wmts_private ] theme = Theme(name=u"__test_theme") theme.interfaces = [main] theme.children = [layer_group] restriction_area = RestrictionArea( name=u"__test_ra1", layers=[layer_wms_private, layer_wmts_private], roles=[role]) DBSession.add_all([theme, restriction_area, user]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None self._tables = [] from c2cgeoportal_geoportal.lib import functionality functionality.FUNCTIONALITIES_TYPES = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, \ RestrictionArea, TreeItem, Theme, LayerGroup, Interface, LayerWMS from c2cgeoportal_commons.models.static import User from sqlalchemy import Column, Table, types from sqlalchemy.ext.declarative import declarative_base from geoalchemy2 import Geometry for o in DBSession.query(RestrictionArea).all(): DBSession.delete(o) for o in DBSession.query(Role).all(): DBSession.delete(o) for o in DBSession.query(User).all(): DBSession.delete(o) for o in DBSession.query(TreeItem).all(): DBSession.delete(o) ogcserver = create_default_ogcserver() role1 = Role(name="__test_role1") role1.id = 999 user1 = User(username="******", password="******", settings_role=role1, roles=[role1]) user1.email = "*****@*****.**" role2 = Role(name="__test_role2", extent=WKTElement( "POLYGON((1 2, 1 4, 3 4, 3 2, 1 2))", srid=21781 )) user2 = User(username="******", password="******", settings_role=role2, roles=[role2]) main = Interface(name="main") engine = DBSession.c2c_rw_bind engine.connect() a_geo_table = Table( "a_geo_table", declarative_base(bind=engine).metadata, Column("id", types.Integer, primary_key=True), Column("geom", Geometry("POINT", srid=21781)), schema="geodata" ) self._tables = [a_geo_table] a_geo_table.drop(checkfirst=True) a_geo_table.create() private_layer = LayerWMS(name="__test_private_layer", public=False) private_layer.layer = "__test_private_layer" private_layer.geo_table = "geodata.a_geo_table" private_layer.interfaces = [main] private_layer.ogc_server = ogcserver group = LayerGroup(name="__test_layer_group") group.children = [private_layer] theme = Theme(name="__test_theme") theme.children = [group] theme.interfaces = [main] DBSession.add(RestrictionArea( name="__test_ra1", description="", layers=[private_layer], roles=[role1], )) DBSession.add(RestrictionArea( name="__test_ra2", description="", layers=[private_layer], roles=[role2], readwrite=True, )) DBSession.add_all([ user1, user2, role1, role2, theme, group, private_layer, ]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, LayerWMS, RestrictionArea, \ Functionality, Interface, OGCServer, OGCSERVER_TYPE_GEOSERVER, OGCSERVER_AUTH_GEOSERVER from c2cgeoportal_commons.models.static import User cleanup_db() ogc_server_internal, _ = create_default_ogcserver() ogcserver_geoserver = OGCServer(name="__test_ogc_server_geoserver") ogcserver_geoserver.url = mapserv_url ogcserver_geoserver.type = OGCSERVER_TYPE_GEOSERVER ogcserver_geoserver.auth = OGCSERVER_AUTH_GEOSERVER PointTest.__table__.create(bind=DBSession.bind, checkfirst=True) geom = WKTElement("POINT(599910 199955)", srid=21781) p1 = PointTest(geom=geom, name="foo", city="Lausanne", country="Swiss") geom = WKTElement("POINT(599910 200045)", srid=21781) p2 = PointTest(geom=geom, name="bar", city="Chambéry", country="France") geom = WKTElement("POINT(600090 200045)", srid=21781) p3 = PointTest(geom=geom, name="éàè", city="Paris", country="France") geom = WKTElement("POINT(600090 199955)", srid=21781) p4 = PointTest(geom=geom, name="123", city="Londre", country="UK") pt1 = Functionality(name="print_template", value="1 Wohlen A4 portrait") pt2 = Functionality(name="print_template", value="2 Wohlen A3 landscape") user1 = User(username="******", password="******") role1 = Role(name="__test_role1", description="__test_role1", functionalities=[pt1, pt2]) user1.role_name = role1.name user1.email = "Tarenpion" user2 = User(username="******", password="******") role2 = Role(name="__test_role2", description="__test_role2", functionalities=[pt1, pt2]) user2.role_name = role2.name user2.email = "Tarenpion" user3 = User(username="******", password="******") role3 = Role(name="__test_role3", description="__test_role3", functionalities=[pt1, pt2]) user3.role_name = role3.name main = Interface(name="main") layer2 = LayerWMS("testpoint_protected", public=False) layer2.layer = "testpoint_protected" layer2.ogc_server = ogc_server_internal layer2.interfaces = [main] layer3 = LayerWMS("testpoint_protected_query_with_collect", public=False) layer3.layer = "testpoint_protected_query_with_collect" layer3.ogc_server = ogc_server_internal layer3.interfaces = [main] area = "POLYGON((599900 200030, 599900 200050, 600100 200050, 600100 200030, 599900 200030))" area = WKTElement(area, srid=21781) restricted_area1 = RestrictionArea("__test_ra1", "", [layer2, layer3], [role1], area) area = "POLYGON((599900 200000, 599900 200020, 600100 200020, 600100 200000, 599900 200000))" area = WKTElement(area, srid=21781) restricted_area2 = RestrictionArea("__test_ra2", "", [layer2, layer3], [role2, role3], area) area = "POLYGON((599905 200043, 599905 200047, 600095 200047, 600095 200043, 599905 200043))" area = WKTElement(area, srid=21781) restricted_area3 = RestrictionArea("__test_ra3", "", [layer3], [role3], area, readwrite=True) DBSession.add_all([ p1, p2, p3, p4, user1, user2, user3, role1, role2, role3, restricted_area1, restricted_area2, restricted_area3, ogcserver_geoserver ]) DBSession.flush() self.id_lausanne = p1.id self.id_paris = p3.id self.ogc_server_id = ogc_server_internal.id self.role1_id = role1.id self.role2_id = role2.id self.role3_id = role3.id transaction.commit()
def setup_method(self, _): import transaction from sqlalchemy import func from geoalchemy2 import WKTElement from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import FullTextSearch, Role, Interface from c2cgeoportal_commons.models.static import User role1 = Role(name="__test_role1", description="__test_role1") user1 = User(username="******", password="******", settings_role=role1, roles=[role1]) role2 = Role(name="__test_role2", description="__test_role2") user2 = User(username="******", password="******", settings_role=role2, roles=[role2]) entry1 = FullTextSearch() entry1.label = "label1" entry1.layer_name = "layer1" entry1.ts = func.to_tsvector("french", "soleil travail") entry1.the_geom = WKTElement("POINT(-90 -45)", 21781) entry1.public = True entry2 = FullTextSearch() entry2.label = "label2" entry2.layer_name = "layer2" entry2.ts = func.to_tsvector("french", "pluie semaine") entry2.the_geom = WKTElement("POINT(-90 -45)", 21781) entry2.public = False entry3 = FullTextSearch() entry3.label = "label3" entry3.layer_name = "layer3" entry3.ts = func.to_tsvector("french", "vent neige") entry3.the_geom = WKTElement("POINT(-90 -45)", 21781) entry3.public = False entry3.role = role2 entry4 = FullTextSearch() entry4.label = "label4" entry4.layer_name = "layer1" entry4.ts = func.to_tsvector("french", "soleil travail") entry4.the_geom = WKTElement("POINT(-90 -45)", 21781) entry4.public = True entry5 = FullTextSearch() entry5.label = "label5" entry5.ts = func.to_tsvector("french", "lausanne") entry5.public = True entry5.params = {"floor": 5} entry5.actions = [{"action": "add_layer", "data": "layer1"}] entry6 = FullTextSearch() entry6.label = "label6" entry6.ts = func.to_tsvector("french", "lausanne") entry6.interface = Interface("main") entry6.public = True # To test the similarity ranking method entry7 = FullTextSearch() entry7.label = "A 7 simi" entry7.ts = func.to_tsvector("french", "A 7 simi") entry7.public = True entry70 = FullTextSearch() entry70.label = "A 70 simi" entry70.ts = func.to_tsvector("french", "A 70 simi") entry70.public = True entry71 = FullTextSearch() entry71.label = "A 71 simi" entry71.ts = func.to_tsvector("french", "A 71 simi") entry71.public = True DBSession.add_all([ user1, user2, role1, role2, entry1, entry2, entry3, entry4, entry5, entry6, entry71, entry70, entry7, ]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Interface, LayerGroup, LayerWMS, LayerWMTS, Theme DBSession.query(PointTest).delete() main = Interface(name="desktop") ogc_server = create_default_ogcserver() layer_wms_1 = LayerWMS(name="__test_layer_time_1", public=True) layer_wms_1.layer = "test_wmstime" layer_wms_1.time_mode = "value" layer_wms_1.interfaces = [main] layer_wms_1.ogc_server = ogc_server layer_wms_2 = LayerWMS(name="__test_layer_time_2", public=True) layer_wms_2.layer = "test_wmstime2" layer_wms_2.time_mode = "value" layer_wms_2.interfaces = [main] layer_wms_2.ogc_server = ogc_server layer_wmts = LayerWMTS(name="__test_layer_wmts", public=True) layer_wmts.url = "http://example.com/1.0.0/WMTSCapabilities.xml" layer_wmts.layer = "map" layer_wmts.interfaces = [main] layer_wms_group_1 = LayerWMS(name="__test_layer_time_group_1", public=True) layer_wms_group_1.layer = "test_wmstimegroup" layer_wms_group_1.time_mode = "range" layer_wms_group_1.time_widget = "datepicker" layer_wms_group_1.interfaces = [main] layer_wms_group_1.ogc_server = ogc_server layer_wms_group_2 = LayerWMS(name="__test_layer_time_group_2", public=True) layer_wms_group_2.layer = "test_wmstimegroup" layer_wms_group_2.time_mode = "value" layer_wms_group_2.interfaces = [main] layer_wms_group_2.ogc_server = ogc_server layer_wms_no_time = LayerWMS(name="__test_layer_without_time_info", public=True) layer_wms_no_time.layer = "test_wmsfeatures" layer_wms_no_time.time_mode = "value" layer_wms_no_time.interfaces = [main] layer_wms_no_time.ogc_server = ogc_server # Expect merge of times layer_group_1 = LayerGroup(name="__test_layer_group_1") layer_group_1.children = [layer_wms_1, layer_wms_2] # Expect time from layer. layer_group_2 = LayerGroup(name="__test_layer_group_2") layer_group_2.children = [layer_wms_1] # Expect merge of wms 1 and 2, layer_wms_group_1 excluded and in errors as its mode don't match. layer_group_3 = LayerGroup(name="__test_layer_group_3") layer_group_3.children = [layer_wms_1, layer_wms_2, layer_wms_group_1] # Expect time from layers in wms layer group layer_group_4 = LayerGroup(name="__test_layer_group_4") layer_group_4.children = [layer_wms_group_1] # Expect merge of wms 1 and 2 and group. layer_group_5 = LayerGroup(name="__test_layer_group_5") layer_group_5.children = [layer_wms_1, layer_wms_2, layer_wms_group_2] # Expect individual layers layer_group_6 = LayerGroup(name="__test_layer_group_6") layer_group_6.children = [layer_wms_1, layer_wms_2, layer_wmts] # Expect layer_wms_no_time excluded and in errors as it has no time info layer_group_7 = LayerGroup(name="__test_layer_group_7") layer_group_7.children = [layer_wms_1, layer_wms_no_time] theme = Theme(name="__test_theme") theme.interfaces = [main] theme.children = [ layer_group_1, layer_group_2, layer_group_3, layer_group_4, layer_group_5, layer_group_6, layer_group_7, ] DBSession.add_all([theme]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import \ Theme, LayerGroup, Functionality, Interface, \ LayerV1, OGCServer, LayerWMS, LayerWMTS, \ Metadata, Dimension, OGCSERVER_AUTH_NOAUTH main = Interface(name="desktop") mobile = Interface(name="mobile") min_levels = Interface(name="min_levels") layer_v1 = LayerV1(name="__test_layer_v1", public=True) layer_v1.interfaces = [main] layer_v1.metadatas = [Metadata("test", "v1")] ogc_server_internal, _ = create_default_ogcserver() ogc_server_external = OGCServer( name="__test_ogc_server_chtopo", url="http://wms.geo.admin.ch/", image_type="image/jpeg", auth=OGCSERVER_AUTH_NOAUTH ) ogc_server_external.wfs_support = False layer_internal_wms = LayerWMS(name="__test_layer_internal_wms", public=True) layer_internal_wms.layer = "__test_layer_internal_wms" layer_internal_wms.interfaces = [main, min_levels] layer_internal_wms.metadatas = [Metadata("test", "internal_wms")] layer_internal_wms.ogc_server = ogc_server_internal layer_external_wms = LayerWMS(name="__test_layer_external_wms", layer="ch.swisstopo.dreiecksvermaschung", public=True) layer_external_wms.interfaces = [main] layer_external_wms.metadatas = [Metadata("test", "external_wms")] layer_external_wms.ogc_server = ogc_server_external layer_wmts = LayerWMTS(name="__test_layer_wmts", public=True) layer_wmts.url = "http://example.com/1.0.0/WMTSCapabilities.xml" layer_wmts.layer = "map" layer_wmts.interfaces = [main, mobile] layer_wmts.metadatas = [Metadata("test", "wmts")] layer_wmts.dimensions = [Dimension("year", "2015")] layer_group_1 = LayerGroup(name="__test_layer_group_1") layer_group_1.children = [layer_v1, layer_internal_wms, layer_external_wms, layer_wmts] layer_group_1.metadatas = [Metadata("test", "group_1")] layer_group_2 = LayerGroup(name="__test_layer_group_2") layer_group_2.children = [layer_wmts, layer_internal_wms, layer_external_wms] layer_group_3 = LayerGroup(name="__test_layer_group_3") layer_group_3.children = [layer_wmts, layer_internal_wms, layer_external_wms] layer_group_4 = LayerGroup(name="__test_layer_group_4") layer_group_4.children = [layer_group_2] theme = Theme(name="__test_theme") theme.interfaces = [main, mobile] theme.metadatas = [Metadata("test", "theme")] theme.children = [ layer_group_1, layer_group_2 ] theme_layer = Theme(name="__test_theme_layer") theme_layer.interfaces = [min_levels] theme_layer.children = [ layer_internal_wms ] functionality1 = Functionality(name="test_name", value="test_value_1") functionality2 = Functionality(name="test_name", value="test_value_2") theme.functionalities = [functionality1, functionality2] DBSession.add_all([theme, theme_layer]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None # pylint: disable=invalid-name self._tables = [] from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, \ RestrictionArea, Theme, LayerGroup, Functionality, Interface, \ LayerWMS, OGCServer, FullTextSearch, OGCSERVER_TYPE_GEOSERVER, OGCSERVER_AUTH_GEOSERVER from c2cgeoportal_commons.models.static import User from sqlalchemy import Column, Table, types, func from sqlalchemy.ext.declarative import declarative_base from geoalchemy2 import Geometry cleanup_db() role1 = Role(name="__test_role1") user1 = User(username="******", password="******", settings_role=role1, roles=[role1]) user1.email = "*****@*****.**" role2 = Role(name="__test_role2", extent=WKTElement("POLYGON((1 2, 1 4, 3 4, 3 2, 1 2))", srid=21781)) user2 = User(username="******", password="******", settings_role=role2, roles=[role2]) main = Interface(name="desktop") mobile = Interface(name="mobile") engine = DBSession.c2c_rw_bind engine.connect() a_geo_table = Table("a_geo_table", declarative_base(bind=engine).metadata, Column("id", types.Integer, primary_key=True), Column("geom", Geometry("POINT", srid=21781)), schema="geodata") self._tables = [a_geo_table] a_geo_table.drop(checkfirst=True) a_geo_table.create() ogcserver = create_default_ogcserver() private_layer_edit = LayerWMS(name="__test_private_layer_edit", public=False) private_layer_edit.layer = "__test_private_layer" private_layer_edit.geo_table = "a_schema.a_geo_table" private_layer_edit.interfaces = [main, mobile] private_layer_edit.ogc_server = ogcserver public_layer2 = LayerWMS(name="__test_public_layer", layer="__test_public_layer_bis", public=True) public_layer2.interfaces = [main, mobile] public_layer2.ogc_server = ogcserver private_layer = LayerWMS(name="__test_private_layer", layer="__test_private_layer_bis", public=False) private_layer.interfaces = [main, mobile] private_layer.ogc_server = ogcserver interface_not_in_mapfile = Interface(name="interface_not_in_mapfile") public_layer_not_in_mapfile = LayerWMS( name="__test_public_layer_not_in_mapfile", layer="__test_public_layer_not_in_mapfile", public=True) public_layer_not_in_mapfile.interfaces = [interface_not_in_mapfile] public_layer_not_in_mapfile.ogc_server = ogcserver interface_notmapfile = Interface(name="interface_notmapfile") ogcserver_notmapfile = OGCServer(name="__test_ogc_server_notmapfile") ogcserver_notmapfile.url = mapserv_url + "?map=not_a_mapfile" public_layer_not_mapfile = LayerWMS( name="__test_public_layer_notmapfile", layer="__test_public_layer_notmapfile", public=True) public_layer_not_mapfile.interfaces = [interface_notmapfile] public_layer_not_mapfile.ogc_server = ogcserver_notmapfile interface_geoserver = Interface(name="interface_geoserver") ogcserver_geoserver = OGCServer(name="__test_ogc_server_geoserver") ogcserver_geoserver.url = mapserv_url ogcserver_geoserver.type = OGCSERVER_TYPE_GEOSERVER ogcserver_geoserver.auth = OGCSERVER_AUTH_GEOSERVER public_layer_geoserver = LayerWMS( name="__test_public_layer_geoserver", layer="__test_public_layer_geoserver", public=True) public_layer_geoserver.interfaces = [interface_geoserver] public_layer_geoserver.ogc_server = ogcserver_geoserver interface_no_layers = Interface(name="interface_no_layers") public_layer_no_layers = LayerWMS(name="__test_public_layer_no_layers", public=True) public_layer_no_layers.interfaces = [interface_no_layers] public_layer_no_layers.ogc_server = ogcserver group = LayerGroup(name="__test_layer_group") group.children = [ private_layer_edit, public_layer2, public_layer_not_in_mapfile, public_layer_not_mapfile, public_layer_geoserver, public_layer_no_layers, private_layer ] theme = Theme(name="__test_theme") theme.children = [group] theme.interfaces = [ main, interface_not_in_mapfile, interface_notmapfile, interface_geoserver, interface_no_layers ] functionality1 = Functionality(name="test_name", value="test_value_1") functionality2 = Functionality(name="test_name", value="test_value_2") theme.functionalities = [functionality1, functionality2] poly = "POLYGON((-100 0, -100 20, 100 20, 100 0, -100 0))" area = WKTElement(poly, srid=21781) RestrictionArea(name="__test_ra1", description="", layers=[private_layer_edit, private_layer], roles=[role1], area=area) area = WKTElement(poly, srid=21781) RestrictionArea(name="__test_ra2", description="", layers=[private_layer_edit, private_layer], roles=[role2], area=area, readwrite=True) entry1 = FullTextSearch() entry1.label = "label1" entry1.layer_name = "layer1" entry1.ts = func.to_tsvector("french", "soleil travail") entry1.the_geom = WKTElement("POINT(-90 -45)", 21781) entry1.public = True entry2 = FullTextSearch() entry2.label = "label1" entry2.layer_name = "layer1" entry2.ts = func.to_tsvector("french", "soleil travail") entry2.the_geom = WKTElement("POINT(-90 -45)", 21781) entry2.public = True entry3 = FullTextSearch() entry3.label = "label1" entry3.layer_name = None entry3.ts = func.to_tsvector("french", "soleil travail") entry3.the_geom = WKTElement("POINT(-90 -45)", 21781) entry3.public = True DBSession.add_all([user1, user2, theme, entry1, entry2, entry3]) DBSession.flush() self.role1_id = role1.id transaction.commit()
def setup_method(self, _): self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, LayerWMS, RestrictionArea, Interface, \ OGCServer, OGCSERVER_TYPE_MAPSERVER, OGCSERVER_AUTH_STANDARD from c2cgeoportal_commons.models.static import User cleanup_db() create_default_ogcserver() ogcserver_jpeg = OGCServer(name="__test_ogc_server_jpeg") ogcserver_jpeg.url = mapserv_url ogcserver_jpeg.image_type = "image/jpeg" ogcserver_jpeg.type = OGCSERVER_TYPE_MAPSERVER ogcserver_jpeg.auth = OGCSERVER_AUTH_STANDARD ogcserver_png = OGCServer(name="__test_ogc_server_png") ogcserver_png.url = mapserv_url ogcserver_png.image_type = "image/png" ogcserver_png.type = OGCSERVER_TYPE_MAPSERVER ogcserver_png.auth = OGCSERVER_AUTH_STANDARD ogcserver_wfs1 = OGCServer(name="__test_ogc_server_wfs1") ogcserver_wfs1.url = mapserv_url ogcserver_wfs1.url_wfs = "config://srv" ogcserver_wfs1.image_type = "image/png" ogcserver_wfs1.type = OGCSERVER_TYPE_MAPSERVER ogcserver_wfs1.auth = OGCSERVER_AUTH_STANDARD ogcserver_wfs2 = OGCServer(name="__test_ogc_server_wfs2") ogcserver_wfs2.url = "config://srv" ogcserver_wfs2.url_wfs = mapserv_url ogcserver_wfs2.image_type = "image/png" ogcserver_wfs2.type = OGCSERVER_TYPE_MAPSERVER ogcserver_wfs2.auth = OGCSERVER_AUTH_STANDARD role = Role(name="__test_role", description="__test_role") user = User(username="******", password="******") user.role_name = "__test_role" main = Interface(name="main") layer1 = LayerWMS("__test_layer1", public=False) layer1.layer = "__test_private_layer1" layer1.ogc_server = ogcserver_jpeg layer1.interfaces = [main] layer2 = LayerWMS("__test_layer2", public=False) layer2.layer = "__test_private_layer2" layer2.ogc_server = ogcserver_png layer2.interfaces = [main] layer3 = LayerWMS("__test_layer3", public=False) layer3.layer = "__test_private_layer3" layer3.ogc_server = ogcserver_wfs1 layer3.interfaces = [main] layer4 = LayerWMS("__test_layer4", public=False) layer4.layer = "__test_private_layer4" layer4.ogc_server = ogcserver_wfs2 layer4.interfaces = [main] restricted_area = RestrictionArea("__test_ra", "", [layer1, layer2, layer3, layer4], [role]) DBSession.add_all([user, restricted_area]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import \ Theme, LayerGroup, Functionality, Interface, OGCServer, LayerWMS, LayerWMTS, \ Metadata, Dimension, OGCSERVER_AUTH_NOAUTH main = Interface(name="desktop") mobile = Interface(name="mobile") min_levels = Interface(name="min_levels") ogc_server_internal, _ = create_default_ogcserver() ogc_server_external = OGCServer(name="__test_ogc_server_chtopo", url="http://wms.geo.admin.ch/", image_type="image/jpeg", auth=OGCSERVER_AUTH_NOAUTH) ogc_server_external.wfs_support = False layer_internal_wms = LayerWMS(name="__test_layer_internal_wms", public=True) layer_internal_wms.layer = "__test_layer_internal_wms" layer_internal_wms.interfaces = [main, min_levels] layer_internal_wms.metadatas = [Metadata("test", "internal_wms")] layer_internal_wms.ogc_server = ogc_server_internal layer_external_wms = LayerWMS(name="__test_layer_external_wms", layer="ch.swisstopo.dreiecksvermaschung", public=True) layer_external_wms.interfaces = [main] layer_external_wms.metadatas = [Metadata("test", "external_wms")] layer_external_wms.ogc_server = ogc_server_external layer_wmts = LayerWMTS(name="__test_layer_wmts", public=True) layer_wmts.url = "http://example.com/1.0.0/WMTSCapabilities.xml" layer_wmts.layer = "map" layer_wmts.interfaces = [main, mobile] layer_wmts.metadatas = [Metadata("test", "wmts")] layer_wmts.dimensions = [Dimension("year", "2015")] layer_group_1 = LayerGroup(name="__test_layer_group_1") layer_group_1.children = [ layer_internal_wms, layer_external_wms, layer_wmts ] layer_group_1.metadatas = [Metadata("test", "group_1")] layer_group_2 = LayerGroup(name="__test_layer_group_2") layer_group_2.children = [ layer_wmts, layer_internal_wms, layer_external_wms ] layer_group_3 = LayerGroup(name="__test_layer_group_3") layer_group_3.children = [ layer_wmts, layer_internal_wms, layer_external_wms ] layer_group_4 = LayerGroup(name="__test_layer_group_4") layer_group_4.children = [layer_group_2] theme = Theme(name="__test_theme") theme.interfaces = [main, mobile] theme.metadatas = [Metadata("test", "theme")] theme.children = [layer_group_1, layer_group_2] theme_layer = Theme(name="__test_theme_layer") theme_layer.interfaces = [min_levels] theme_layer.children = [layer_internal_wms] functionality1 = Functionality(name="test_name", value="test_value_1") functionality2 = Functionality(name="test_name", value="test_value_2") theme.functionalities = [functionality1, functionality2] DBSession.add_all([theme, theme_layer]) transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Role, LayerWMS, RestrictionArea, \ Functionality, Interface, OGCServer, OGCSERVER_TYPE_GEOSERVER, OGCSERVER_AUTH_GEOSERVER from c2cgeoportal_commons.models.static import User cleanup_db() ogc_server_internal, _ = create_default_ogcserver() ogcserver_geoserver = OGCServer(name="__test_ogc_server_geoserver") ogcserver_geoserver.url = mapserv_url ogcserver_geoserver.type = OGCSERVER_TYPE_GEOSERVER ogcserver_geoserver.auth = OGCSERVER_AUTH_GEOSERVER PointTest.__table__.create(bind=DBSession.bind, checkfirst=True) geom = WKTElement("POINT(599910 199955)", srid=21781) p1 = PointTest(geom=geom, name="foo", city="Lausanne", country="Swiss") geom = WKTElement("POINT(599910 200045)", srid=21781) p2 = PointTest(geom=geom, name="bar", city="Chambéry", country="France") geom = WKTElement("POINT(600090 200045)", srid=21781) p3 = PointTest(geom=geom, name="éàè", city="Paris", country="France") geom = WKTElement("POINT(600090 199955)", srid=21781) p4 = PointTest(geom=geom, name="123", city="Londre", country="UK") pt1 = Functionality(name="print_template", value="1 Wohlen A4 portrait") pt2 = Functionality(name="print_template", value="2 Wohlen A3 landscape") role1 = Role(name="__test_role1", description="__test_role1", functionalities=[pt1, pt2]) user1 = User(username="******", password="******", roles=[role1]) user1.email = "Tarenpion" role2 = Role(name="__test_role2", description="__test_role2", functionalities=[pt1, pt2]) user2 = User(username="******", password="******", settings_role=role2, roles=[role2]) user2.email = "Tarenpion" role3 = Role(name="__test_role3", description="__test_role3", functionalities=[pt1, pt2]) user3 = User(username="******", password="******", settings_role=role3, roles=[role3]) role4 = Role(name="__test_role4", description="__test_role4", functionalities=[pt1, pt2]) role5 = Role(name="__test_role5", description="__test_role5", functionalities=[pt1, pt2]) user4 = User(username="******", password="******", settings_role=role3, roles=[role4, role5]) main = Interface(name="main") layer2 = LayerWMS("testpoint_protected", public=False) layer2.layer = "testpoint_protected" layer2.ogc_server = ogc_server_internal layer2.interfaces = [main] layer3 = LayerWMS("testpoint_protected_query_with_collect", public=False) layer3.layer = "testpoint_protected_query_with_collect" layer3.ogc_server = ogc_server_internal layer3.interfaces = [main] area = "POLYGON((599900 200030, 599900 200050, 600100 200050, 600100 200030, 599900 200030))" area = WKTElement(area, srid=21781) restricted_area1 = RestrictionArea("__test_ra1", "", [layer2, layer3], [role1], area) area = "POLYGON((599900 200000, 599900 200020, 600100 200020, 600100 200000, 599900 200000))" area = WKTElement(area, srid=21781) restricted_area2 = RestrictionArea("__test_ra2", "", [layer2, layer3], [role2, role3], area) area = "POLYGON((599905 200043, 599905 200047, 600095 200047, 600095 200043, 599905 200043))" area = WKTElement(area, srid=21781) restricted_area3 = RestrictionArea("__test_ra3", "", [layer3], [role3], area, readwrite=True) area = "POLYGON((599909 199954, 599911 199954, 599911 199956, 599909 199956, 599909 199954))" area = WKTElement(area, srid=21781) restricted_area4 = RestrictionArea("__test_ra4", "", [layer2], [role4], area, readwrite=True) area = "POLYGON((599909 200044, 599911 200044, 599911 200046, 599909 200046, 599909 200044))" area = WKTElement(area, srid=21781) restricted_area5 = RestrictionArea("__test_ra5", "", [layer2], [role5], area, readwrite=True) DBSession.add_all([ p1, p2, p3, p4, user1, user2, user3, user4, role1, role2, role3, ogcserver_geoserver, restricted_area1, restricted_area2, restricted_area3, restricted_area4, restricted_area5, ]) DBSession.flush() self.id_lausanne = p1.id self.id_paris = p3.id self.ogc_server_id = ogc_server_internal.id self.user1_id = user1.id self.user2_id = user2.id self.user3_id = user3.id transaction.commit()
def setup_method(self, _): # Always see the diff # https://docs.python.org/2/library/unittest.html#unittest.TestCase.maxDiff self.maxDiff = None from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.main import Theme, LayerGroup, Interface, LayerWMS, LayerWMTS PointTest.__table__.create(bind=DBSession.bind, checkfirst=True) main = Interface(name="desktop") ogc_server = create_default_ogcserver() layer_wms_1 = LayerWMS(name="__test_layer_time_1", public=True) layer_wms_1.layer = "test_wmstime" layer_wms_1.time_mode = "value" layer_wms_1.interfaces = [main] layer_wms_1.ogc_server = ogc_server layer_wms_2 = LayerWMS(name="__test_layer_time_2", public=True) layer_wms_2.layer = "test_wmstime2" layer_wms_2.time_mode = "value" layer_wms_2.interfaces = [main] layer_wms_2.ogc_server = ogc_server layer_wmts = LayerWMTS(name="__test_layer_wmts", public=True) layer_wmts.url = "http://example.com/1.0.0/WMTSCapabilities.xml" layer_wmts.layer = "map" layer_wmts.interfaces = [main] layer_wms_group = LayerWMS(name="__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.ogc_server = ogc_server layer_group_1 = LayerGroup(name="__test_layer_group_1") layer_group_1.children = [layer_wms_1, layer_wms_2] layer_group_2 = LayerGroup(name="__test_layer_group_2") layer_group_2.children = [layer_wms_1] layer_group_3 = LayerGroup(name="__test_layer_group_3") layer_group_3.children = [layer_wms_1, layer_wms_2, layer_wms_group] layer_group_4 = LayerGroup(name="__test_layer_group_4") layer_group_4.children = [layer_wms_group] layer_group_5 = LayerGroup(name="__test_layer_group_5") layer_group_5.children = [layer_wms_1, layer_wms_2] layer_group_6 = LayerGroup(name="__test_layer_group_6") layer_group_6.children = [layer_wms_1, layer_wms_2, layer_wmts] layer_group_7 = LayerGroup(name="__test_layer_group_7") layer_group_7.children = [layer_wms_1] theme = Theme(name="__test_theme") theme.interfaces = [main] theme.children = [ layer_group_1, layer_group_2, layer_group_3, layer_group_4, layer_group_5, layer_group_6, layer_group_7, ] DBSession.add_all([theme]) transaction.commit()