def test_theme(self): from c2cgeoportal_geoportal.views.entry import Entry request = testing.DummyRequest({ "version": "2", }) request.static_url = lambda url: "http://example.com/dummy/static/url" request.route_url = lambda url, _query={}: mapserv_url request.client_addr = None request.user = None entry = Entry(request) _, errors = entry._themes(None, "desktop2", True, 2) self.assertEqual(len([e for e in errors if e == "Too many recursions with group '__test_layer_group'"]), 1)
def test_theme(self): from c2cgeoportal_commons.models import DBSession from c2cgeoportal_commons.models.static import User from c2cgeoportal_geoportal.views.entry import Entry request = self._create_request_obj() entry = Entry(request) # unautenticated themes, errors = entry._themes() assert {e[:90] for e in errors} == set() assert len(themes) == 1 groups = {g["name"] for g in themes[0]["children"]} assert groups == { "__test_layer_group", } layers = {l["name"] for l in themes[0]["children"][0]["children"]} assert layers == { "__test_public_layer", } # authenticated request.params = {} request.user = DBSession.query(User).filter_by( username="******").one() themes, errors = entry._themes() assert {e[:90] for e in errors} == set() assert len(themes) == 1 groups = {g["name"] for g in themes[0]["children"]} assert groups == { "__test_layer_group", } layers = {l["name"] for l in themes[0]["children"][0]["children"]} assert layers == { "__test_private_layer_edit", "__test_public_layer", "__test_private_layer", }
def test_no_layers(self): # mapfile error from c2cgeoportal_geoportal.views.entry import Entry request = self._create_request_obj() entry = Entry(request) request.params = {} from c2cgeoportal_geoportal.lib import caching caching.invalidate_region() themes, errors = entry._themes("interface_no_layers") assert themes == [] assert { e[:90] for e in errors } == { "The layer '__test_public_layer_no_layers' do not have any layers", }
def test_theme_geoserver(self): from c2cgeoportal_geoportal.views.entry import Entry request = self._create_request_obj() entry = Entry(request) # unautenticated v1 themes, errors = entry._themes("interface_geoserver") assert { e[:90] for e in errors } == { "The layer '__test_public_layer_geoserver' (__test_public_layer_geoserver) is not defined i" } assert len(themes) == 1 layers = {l["name"] for l in themes[0]["children"][0]["children"]} assert layers == { "__test_public_layer_geoserver", }
def test_not_in_mapfile(self): # mapfile error from c2cgeoportal_geoportal.views.entry import Entry entry = Entry(self._create_request_obj()) from c2cgeoportal_geoportal.lib import caching caching.invalidate_region() themes, errors = entry._themes("interface_not_in_mapfile") assert len(themes) == 1 groups = {g["name"] for g in themes[0]["children"]} assert groups == { "__test_layer_group", } layers = {l["name"] for l in themes[0]["children"][0]["children"]} assert layers == { "__test_public_layer_not_in_mapfile", } assert { e[:90] for e in errors } == { "The layer '__test_public_layer_not_in_mapfile' (__test_public_layer_not_in_mapfile) is not", }
def test_notmapfile(self): # mapfile error from c2cgeoportal_geoportal.views.entry import Entry entry = Entry(self._create_request_obj()) from c2cgeoportal_geoportal.lib import caching caching.invalidate_region() themes, errors = entry._themes("interface_notmapfile") assert len(themes) == 1 groups = {g["name"] for g in themes[0]["children"]} assert groups == { "__test_layer_group", } layers = {l["name"] for l in themes[0]["children"][0]["children"]} assert layers == { "__test_public_layer_notmapfile", } assert { e[:90] for e in errors } == { "The layer '__test_public_layer_notmapfile' (__test_public_layer_notmapfile) is not defined", "GetCapabilities from URL http://mapserver:8080/?map=not_a_mapfile&SERVICE=WMS&VERSION=1.1." }