Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrunner committed Oct 10, 2024
1 parent c596a14 commit 7c053f5
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 106 deletions.
63 changes: 27 additions & 36 deletions geoportal/tests/functional/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@

import pyramid.registry
import pyramid.request
import sqlalchemy.exc
import tests
import transaction
import webob.acceptparse
from c2c.template.config import config as configuration
from pyramid import testing
from sqlalchemy.orm.session import Session

import c2cgeoportal_geoportal
import c2cgeoportal_geoportal.lib
Expand Down Expand Up @@ -76,27 +76,23 @@ def cleanup_db() -> None:
)
from c2cgeoportal_commons.models.static import OAuth2Client, Shorturl, User

try:
with models.DBSession() as session:
for ra in session.query(RestrictionArea).all():
ra.roles = []
session.delete(ra)
for ti in session.query(TreeItem).all():
session.delete(ti)
session.query(OGCServer).delete()
session.query(Interface).delete()
for r in session.query(Role).all():
r.functionalities = []
session.delete(r)
session.query(User).delete()
session.query(Functionality).delete()
session.query(FullTextSearch).delete()
session.query(Shorturl).delete()
session.query(OAuth2Client).delete()
transaction.commit()
except sqlalchemy.exc.InvalidRequestError:
models.DBSession.rollback()

for ra in models.DBSession.query(RestrictionArea).all():
ra.roles = []
models.DBSession.delete(ra)
for ti in models.DBSession.query(TreeItem).all():
models.DBSession.delete(ti)
models.DBSession.query(OGCServer).delete()
models.DBSession.query(Interface).delete()
for r in models.DBSession.query(Role).all():
r.functionalities = []
models.DBSession.delete(r)
models.DBSession.query(User).delete()
models.DBSession.query(Functionality).delete()
models.DBSession.query(FullTextSearch).delete()
models.DBSession.query(Shorturl).delete()
models.DBSession.query(OAuth2Client).delete()
transaction.commit()


def setup_db() -> None:
Expand All @@ -108,9 +104,10 @@ def setup_db() -> None:
from c2cgeoportal_commons.models import DBSession
from c2cgeoportal_commons.models.main import Role

DBSession.add_all([Role(name) for name in ("anonymous", "registered", "intranet")])
with DBSession() as session:
session.add_all([Role(name) for name in ("anonymous", "registered", "intranet")])

transaction.commit()
transaction.commit()

c2cgeoportal_geoportal.lib.ogc_server_wms_url_ids = None
c2cgeoportal_geoportal.lib.ogc_server_wfs_url_ids = None
Expand Down Expand Up @@ -170,25 +167,21 @@ def teardown_common() -> None:
models.DBSessions = {}


def create_default_ogcserver():
from c2cgeoportal_commons.models import DBSession
def create_default_ogcserver(session: Session) -> models.main.OGCServer:
from c2cgeoportal_commons.models.main import OGCServer

transaction.commit()
ogcserver = OGCServer(name="__test_ogc_server")
ogcserver.url = mapserv_url
DBSession.add(ogcserver)
transaction.commit()
session.add(ogcserver)
caching.invalidate_region()

return ogcserver


def _get_user(username: str):
from c2cgeoportal_commons.models import DBSession
def _get_user(username: str, session: Session) -> models.static.User:
from c2cgeoportal_commons.models.static import User

return DBSession.query(User).filter(User.username == username).one()
return session.query(User).filter(User.username == username).one()


def init_registry(registry=None):
Expand Down Expand Up @@ -285,12 +278,10 @@ def create_dummy_request(
return request


def fill_tech_user_functionality(name, functionalities):
from c2cgeoportal_commons.models import DBSession
def fill_tech_user_functionality(name, functionalities, session: Session) -> None:
from c2cgeoportal_commons.models.main import Functionality, Role

role = DBSession.query(Role).filter_by(name=name).one()
role = session.query(Role).filter_by(name=name).one()
role.functionalities = [Functionality(name, value) for name, value in functionalities]
DBSession.add(role)
transaction.commit()
session.add(role)
caching.invalidate_region()
141 changes: 71 additions & 70 deletions geoportal/tests/functional/test_themes.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2013-2023, Camptocamp SA
# Copyright (c) 2013-2024, Camptocamp SA
# All rights reserved.

# Redistribution and use in source and binary forms, with or without
Expand Down Expand Up @@ -57,82 +57,83 @@ def setup_method(self, _):
Theme,
)

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()
with DBSession() as session:
main = Interface(name="desktop")
mobile = Interface(name="mobile")
min_levels = Interface(name="min_levels")

ogc_server_internal = create_default_ogcserver(session)
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]

session.add_all([theme, theme_layer])

transaction.commit()

def teardown_method(self, _):
testing.tearDown()

from c2cgeoportal_commons.models import DBSession
from c2cgeoportal_commons.models.main import Dimension, Interface, Metadata, OGCServer, TreeItem

DBSession.query(Metadata).delete()
DBSession.query(Dimension).delete()
for item in DBSession.query(TreeItem).all():
DBSession.delete(item)
DBSession.query(Interface).filter(Interface.name == "main").delete()
DBSession.query(OGCServer).delete()

transaction.commit()
with DBSession() as session:
session.query(Metadata).delete()
session.query(Dimension).delete()
for item in session.query(TreeItem).all():
session.delete(item)
session.query(Interface).filter(Interface.name == "main").delete()
session.query(OGCServer).delete()
transaction.commit()

#
# viewer view tests
Expand Down

0 comments on commit 7c053f5

Please sign in to comment.