示例#1
0
    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)
示例#2
0
    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",
        }
示例#3
0
    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",
        }
示例#4
0
    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",
        }
示例#5
0
    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",
        }
示例#6
0
    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."
        }