Ejemplo n.º 1
0
    def test_wfs_get_capabilities(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_getcap_request()
        request.params.update(
            dict(
                service="wfs",
                version="1.1.1",
                request="getcapabilities",
            ))
        response = MapservProxy(request).proxy()

        self.assertFalse(
            (response.body).find("<Name>testpoint_protected</Name>") > 0)

        request = self._create_getcap_request(username=u"__test_user1")
        request.params.update(
            dict(
                service="wfs",
                version="1.1.1",
                request="getcapabilities",
            ))
        response = MapservProxy(request).proxy()
        self.assertTrue(
            response.body.find("<Name>testpoint_protected</Name>") > 0)
    def test_wfs_get_capabilities(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_getcap_request()
        request.params.update(
            dict(
                service="wfs",
                version="1.1.1",
                request="getcapabilities",
            ))
        response = MapservProxy(request).proxy()

        assert "<Name>testpoint_protected</Name>" not in response.body.decode(
            "utf-8")
        # testpoint_group is not public so even unprotected layers are hidden:
        assert "<Name>testpoint_unprotected</Name>" not in response.body.decode(
            "utf-8")
        assert "<Name>testpoint_group</Name>" not in response.body.decode(
            "utf-8")

        request = self._create_getcap_request(username="******")
        request.params.update(
            dict(
                service="wfs",
                version="1.1.1",
                request="getcapabilities",
            ))
        response = MapservProxy(request).proxy()
        assert "<Name>testpoint_protected</Name>" in response.body.decode(
            "utf-8")
        assert "<Name>testpoint_unprotected</Name>" in response.body.decode(
            "utf-8")
        assert "<Name>testpoint_group</Name>" not in response.body.decode(
            "utf-8")
    def test_wms_get_capabilities(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_getcap_request()
        request.params.update(dict(
            service="wms", version="1.1.1", request="getcapabilities",
        ))
        response = MapservProxy(request).proxy()

        self.assertFalse((response.body).find("<Name>testpoint_protected</Name>") > 0)
        self.assertFalse((response.body).find("<Name>testpoint_protected_2</Name>") > 0)
        # testpoint_group is not public so even unprotected layers are hidden:
        self.assertFalse((response.body).find("<Name>testpoint_unprotected</Name>") > 0)
        self.assertFalse((response.body).find("<Name>testpoint_group</Name>") > 0)
        # testpoint_group_2 is a standard group containing only protected layers
        self.assertFalse((response.body).find("<Name>testpoint_group_2</Name>") > 0)

        request = self._create_getcap_request(username=u"__test_user1")
        request.params.update(dict(
            service="wms", version="1.1.1", request="getcapabilities",
        ))
        response = MapservProxy(request).proxy()
        self.assertTrue(response.body.find("<Name>testpoint_protected</Name>") > 0)
        self.assertTrue(response.body.find("<Name>testpoint_protected_2</Name>") > 0)
        self.assertTrue((response.body).find("<Name>testpoint_unprotected</Name>") > 0)
        self.assertTrue((response.body).find("<Name>testpoint_group</Name>") > 0)
        self.assertTrue((response.body).find("<Name>testpoint_group_2</Name>") > 0)
    def _wms_get_capabilities_config(ogcserver, service="wms", username=None):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = create_dummy_request(
            {
                "admin_interface": {
                    "available_functionalities": [
                        "mapserver_substitution",
                        "print_template",
                    ]
                },
                "servers": {
                    "srv": "http://example.com"
                },
                "mapserverproxy": {
                    "default_ogc_server": ogcserver,
                },
            },
            user=username)
        request.params.update(
            dict(
                service=service,
                version="1.1.1",
                request="getcapabilities",
            ))
        return MapservProxy(request).proxy()
Ejemplo n.º 5
0
    def test_get_feature_info_jsonp(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()
        request.params.update(
            dict(service="wms",
                 version="1.1.1",
                 request="getfeatureinfo",
                 bbox="-90,-45,90,0",
                 layers="testpoint_unprotected",
                 query_layers="testpoint_unprotected",
                 srs="EPSG:21781",
                 format="image/png",
                 info_format="application/vnd.ogc.gml",
                 width="600",
                 height="400",
                 x="0",
                 y="400",
                 callback="cb"))
        response = MapservProxy(request).proxy()

        expected_response = """
        <?xmlversion="1.0"encoding="UTF-8"?>
        <msGMLOutput
         xmlns:gml="http://www.opengis.net/gml"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <testpoint_unprotected_layer>
        <gml:name>countries</gml:name>
                <testpoint_unprotected_feature>
                        <gml:boundedBy>
                                <gml:Box srsName="EPSG:21781">
                                        <gml:coordinates>-90.000000,-45.000000 -90.000000,-45.000000</gml:coordinates>
                                </gml:Box>
                        </gml:boundedBy>
                        <the_geom>
                        <gml:Point srsName="EPSG:21781">
                          <gml:coordinates>-90.000000,-45.000000</gml:coordinates>
                        </gml:Point>
                        </the_geom>
                        <name>foo</name>
                        <city>Lausanne</city>
                        <country>Swiss</country>
                </testpoint_unprotected_feature>
        </testpoint_unprotected_layer>
        </msGMLOutput>
        """
        import re
        pattern = re.compile(r"\s+")
        expected_response = "".join(
            re.sub(pattern, "", l) for l in expected_response.splitlines())
        expected_response = "%s('%s');" % ("cb", expected_response)
        response_body = "".join(
            re.sub(pattern, "", l) for l in response.body.splitlines())
        self.assertEqual(response_body, expected_response)
        self.assertFalse(response.cache_control.public)
        self.assertEqual(str(response.cache_control), "no-cache")
Ejemplo n.º 6
0
 def test_GetLegendGraphic(self):
     request = self._create_dummy_request()
     request.params.update(dict(service='wms', version='1.1.1',
                           request='getlegendgraphic',
                           layer='testpoint_unprotected',
                           srs='EPSG:21781',
                           format='image/png',
                           extraparam=u'with spéciàl chârs'))
     response = MapservProxy(request).proxy()
     self.assertTrue(response.cache_control.public)
     self.assertEqual(response.cache_control.max_age, 1000)
Ejemplo n.º 7
0
    def GetFeature_IsLike(self, value):
        request = self._create_dummy_request()

        request.method = 'POST'
        request.body = (GETFEATURE_REQUEST % {
            'feature': u'testpoint_unprotected',
            'function': u'Like',
            'arguments': u'wildCard="*" singleChar="." escapeChar="!"',
            'property': u'name',
            'value': value,
        }).encode('utf-8')
        return MapservProxy(request).proxy()
Ejemplo n.º 8
0
    def GetFeature_IsNotEqualTo(self, value):
        request = self._create_dummy_request()

        request.method = 'POST'
        request.body = (GETFEATURE_REQUEST % {
            'feature': u'testpoint_unprotected',
            'function': u'NotEqualTo',
            'arguments': u'',
            'property': u'name',
            'value': value,
        }).encode('utf-8')
        return MapservProxy(request).proxy()
Ejemplo n.º 9
0
    def test_GetFeatureInfo_JSONP(self):
        request = self._create_dummy_request()
        request.params.update(dict(
            service='wms', version='1.1.1',
            request='getfeatureinfo', bbox='-90,-45,90,0',
            layers='testpoint_unprotected',
            query_layers='testpoint_unprotected',
            srs='EPSG:21781', format='image/png',
            info_format='application/vnd.ogc.gml',
            width='600', height='400', x='0', y='400',
            callback='cb'
        ))
        response = MapservProxy(request).proxy()

        expected_response = """
        <?xmlversion="1.0"encoding="UTF-8"?>
        <msGMLOutput
         xmlns:gml="http://www.opengis.net/gml"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <testpoint_unprotected_layer>
        <gml:name>countries</gml:name>
                <testpoint_unprotected_feature>
                        <gml:boundedBy>
                                <gml:Box srsName="EPSG:21781">
                                        <gml:coordinates>-90.000000,-45.000000 -90.000000,-45.000000</gml:coordinates>
                                </gml:Box>
                        </gml:boundedBy>
                        <the_geom>
                        <gml:Point srsName="EPSG:21781">
                          <gml:coordinates>-90.000000,-45.000000</gml:coordinates>
                        </gml:Point>
                        </the_geom>
                        <name>foo</name>
                        <city>Lausanne</city>
                        <country>Swiss</country>
                </testpoint_unprotected_feature>
        </testpoint_unprotected_layer>
        </msGMLOutput>
        """
        import re
        pattern = re.compile(r'\s+')
        expected_response = ''.join(
            re.sub(pattern, '', l) for l in expected_response.splitlines()
        )
        expected_response = '%s(\'%s\');' % ('cb', expected_response)
        response_body = ''.join(
            re.sub(pattern, '', l) for l in response.body.splitlines()
        )
        self.assertEqual(response_body, expected_response)
        self.assertFalse(response.cache_control.public)
        self.assertEqual(str(response.cache_control), "no-cache")
Ejemplo n.º 10
0
    def test_GetMap_protected_layer_user2(self):
        request = self._create_dummy_request(username=u'__test_user2')
        request.params.update(dict(
            service='wms', version='1.1.1', request='getmap',
            bbox='-180,-90,180,90', layers='testpoint_protected',
            width='600', height='400', srs='EPSG:21781', format='image/png'
        ))
        response = MapservProxy(request).proxy()

        self.assertEqual(str(response.cache_control), "no-cache")
        # empty
        md5sum = hashlib.md5(response.body).hexdigest()
        self.assertEquals(md5sum, 'ef33223235b26c782736c88933b35331')
Ejemplo n.º 11
0
    def test_geoserver(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_getcap_request(username="******", additional_settings={
            "mapserverproxy": {
                "default_ogc_server": "__test_ogc_server_geoserver",
            }
        })
        request.params.update(dict(
            service="wms", version="1.1.1", request="getcapabilities",
        ))
        response = MapservProxy(request).proxy()
        assert "<Name>testpoint_protected</Name>" in response.body.decode("utf-8")
Ejemplo n.º 12
0
    def _get_feature_is_equal_to(self, value):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()

        request.method = "POST"
        request.body = (GETFEATURE_REQUEST % {
            "feature": u"testpoint_unprotected",
            "function": u"EqualTo",
            "arguments": u"",
            "property": u"name",
            "value": value,
        }).encode("utf-8")
        return MapservProxy(request).proxy()
Ejemplo n.º 13
0
    def _get_feature_is_like(self, value):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()

        request.method = "POST"
        request.body = (GETFEATURE_REQUEST % {
            "feature": u"testpoint_unprotected",
            "function": u"Like",
            "arguments": u'wildCard="*" singleChar="." escapeChar="!"',
            "property": u"name",
            "value": value,
        }).encode("utf-8")
        return MapservProxy(request).proxy()
Ejemplo n.º 14
0
    def test_GetMap_protected_layer_collect_query_user3(self):
        request = self._create_dummy_request(username=u'__test_user3')
        request.params.update(dict(
            service='wms', version='1.1.1', request='getmap',
            bbox='-180,-90,180,90', layers='testpoint_protected_query_with_collect',
            width='600', height='400', srs='EPSG:21781', format='image/png'
        ))
        response = MapservProxy(request).proxy()

        self.assertTrue(response.status_int, 200)
        self.assertEqual(str(response.cache_control), "no-cache")
        # two points
        md5sum = hashlib.md5(response.body).hexdigest()
        self.assertEquals(md5sum, '0a4fac2209d06c6fa36048c125b1679a')
Ejemplo n.º 15
0
    def test_GetMap_unprotected_layer_user2(self):
        request = self._create_dummy_request(username=u'__test_user2')
        request.params.update(dict(
            service='wms', version='1.1.1', request='getmap',
            bbox='-180,-90,180,90', layers='testpoint_unprotected',
            width='600', height='400', srs='EPSG:21781', format='image/png'
        ))
        response = MapservProxy(request).proxy()

        self.assertTrue(response.status_int, 200)
        self.assertEqual(str(response.cache_control), "no-cache")
        # 4 points
        md5sum = hashlib.md5(response.body).hexdigest()
        self.assertEquals(md5sum, '61cbb0a6d18b72e4a28c1087019de245')
Ejemplo n.º 16
0
    def test_get_map_protected_layer_user2(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request(username="******")
        request.params.update(dict(
            service="wms", version="1.1.1", request="getmap",
            bbox="599820,199910,600180,200090", layers="testpoint_protected",
            width="600", height="400", srs="EPSG:21781", format="image/png"
        ))
        response = MapservProxy(request).proxy()

        self.assertEqual(str(response.cache_control), "max-age=0, no-cache")
        # empty
        md5sum = hashlib.md5(response.body).hexdigest()
        self.assertIn(md5sum, NO_POINT)
Ejemplo n.º 17
0
    def _get_feature_is_not_equal_to(self, value):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()
        request.headers["Content-Type"] = "application/xml; charset=UTF-8"

        request.method = "POST"
        request.body = (GETFEATURE_REQUEST % {
            "feature": "testpoint_unprotected",
            "function": "NotEqualTo",
            "arguments": "",
            "property": "name",
            "value": value,
        }).encode("utf-8")
        return MapservProxy(request).proxy()
Ejemplo n.º 18
0
    def test_get_legend_graphic(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()
        request.params.update(
            dict(service="wms",
                 version="1.1.1",
                 request="getlegendgraphic",
                 layer="testpoint_unprotected",
                 srs="EPSG:21781",
                 format="image/png",
                 extraparam=u"with spéciàl chârs"))
        response = MapservProxy(request).proxy()
        self.assertTrue(response.cache_control.public)
        self.assertEqual(response.cache_control.max_age, 1000)
Ejemplo n.º 19
0
    def test_GetFeature_FeatureId_GET_JSONP(self):
        request = self._create_dummy_request()

        featureid = '%(typename)s.%(fid1)s,%(typename)s.%(fid2)s' % {
            'typename': 'testpoint_unprotected',
            'fid1': self.id_lausanne,
            'fid2': self.id_paris
        }
        request.params.update(dict(
            service='wfs', version='1.0.0',
            request='getfeature', typename='testpoint_unprotected',
            featureid=featureid, callback='cb'
        ))
        response = MapservProxy(request).proxy()
        self.assertTrue('Lausanne' in response.body)
        self.assertTrue('Paris' in response.body)
        self.assertFalse('Londre' in response.body)
        self.assertFalse('Chambéry' in response.body)
        self.assertEqual(response.content_type, 'application/javascript')
Ejemplo n.º 20
0
    def test_get_feature_external_wfs_url(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()

        featureid = "{typename!s}.{fid1!s},{typename!s}.{fid2!s}".format(
            typename="testpoint_unprotected",
            fid1=self.id_lausanne,
            fid2=self.id_paris
        )
        request.params.update(dict(
            service="wfs", version="1.0.0",
            request="getfeature", typename="testpoint_unprotected",
            featureid=featureid, callback="cb", EXTERNAL=1
        ))
        response = MapservProxy(request).proxy()

        self.assertTrue(response.body != "")
        self.assertEqual(str(response.cache_control), "max-age=0, no-cache")
Ejemplo n.º 21
0
    def test_GetFeature_external_wfs_url(self):
        request = self._create_dummy_request()
        request.registry.settings.update({
            'external_mapserv_wfs_url': request.registry.settings['mapserv_url'],
        })

        featureid = '%(typename)s.%(fid1)s,%(typename)s.%(fid2)s' % {
            'typename': 'testpoint_unprotected',
            'fid1': self.id_lausanne,
            'fid2': self.id_paris
        }
        request.params.update(dict(
            service='wfs', version='1.0.0',
            request='getfeature', typename='testpoint_unprotected',
            featureid=featureid, callback='cb', EXTERNAL=1
        ))
        response = MapservProxy(request).proxy()

        self.assertTrue(response.body != '')
        self.assertEqual(str(response.cache_control), "no-cache")
Ejemplo n.º 22
0
    def test_get_feature_wfs_url(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()

        featureid = "%(typename)s.%(fid1)s,%(typename)s.%(fid2)s" % {
            "typename": "testpoint_unprotected",
            "fid1": self.id_lausanne,
            "fid2": self.id_paris
        }
        request.params.update(
            dict(service="wfs",
                 version="1.0.0",
                 request="getfeature",
                 typename="testpoint_unprotected",
                 featureid=featureid,
                 callback="cb"))
        response = MapservProxy(request).proxy()

        self.assertTrue(response.body != "")
        self.assertEqual(str(response.cache_control), "no-cache")
Ejemplo n.º 23
0
    def test_get_map_protected_layer_collect_query_user3(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request(username=u"__test_user3")
        request.params.update(
            dict(service="wms",
                 version="1.1.1",
                 request="getmap",
                 bbox="-180,-90,180,90",
                 layers="testpoint_protected_query_with_collect",
                 width="600",
                 height="400",
                 srs="EPSG:21781",
                 format="image/png"))
        response = MapservProxy(request).proxy()

        self.assertTrue(response.status_int, 200)
        self.assertEqual(str(response.cache_control), "no-cache")
        # two points
        md5sum = hashlib.md5(response.body).hexdigest()
        self.assertIn(md5sum, TWO_POINTS)
Ejemplo n.º 24
0
    def test_get_feature_feature_id_get_jsonp(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()

        featureid = "{typename!s}.{fid1!s},{typename!s}.{fid2!s}".format(
            typename="testpoint_unprotected",
            fid1=self.id_lausanne,
            fid2=self.id_paris
        )
        request.params.update(dict(
            service="wfs", version="1.0.0",
            request="getfeature", typename="testpoint_unprotected",
            featureid=featureid, callback="cb"
        ))
        response = MapservProxy(request).proxy()
        assert "Lausanne" in response.body.decode("utf-8")
        assert "Paris" in response.body.decode("utf-8")
        assert "Londre" not in response.body.decode("utf-8")
        assert "Chambéry" not in response.body.decode("utf-8")
        self.assertEqual(response.content_type, "application/javascript")
Ejemplo n.º 25
0
    def test_get_feature_feature_id_get(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()

        featureid = "%(typename)s.%(fid1)s,%(typename)s.%(fid2)s" % {
            "typename": "testpoint_unprotected",
            "fid1": self.id_lausanne,
            "fid2": self.id_paris
        }
        request.params.update(
            dict(service="wfs",
                 version="1.0.0",
                 request="getfeature",
                 typename="testpoint_unprotected",
                 featureid=featureid))
        response = MapservProxy(request).proxy()
        self.assertTrue("Lausanne" in response.body)
        self.assertTrue("Paris" in response.body)
        self.assertFalse("Londre" in response.body)
        self.assertFalse("Chambéry" in response.body)
        self.assertEqual(response.content_type, "text/xml")
Ejemplo n.º 26
0
    def test_getlegendgraphic_custom_nocache(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()
        request.registry.settings.update({
            "headers": {
                "mapserver": {
                    "cache_control_max_age": 0,
                    "access_control_allow_origin": "*"
                }
            }
        })
        request.params.update(
            dict(service="wms",
                 version="1.1.1",
                 request="getlegendgraphic",
                 layer="testpoint_unprotected",
                 srs="EPSG:21781",
                 format="image/png",
                 extraparam=u"with spéciàl chârs"))
        response = MapservProxy(request).proxy()
        self.assertTrue(response.cache_control.public)
        self.assertTrue(response.cache_control.no_cache)
Ejemplo n.º 27
0
    def test_substitution(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()
        request.method = "POST"
        request.headers["Content-Type"] = "application/xml; charset=UTF-8"
        request.body = SUBSTITUTION_GETFEATURE_REQUEST

        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"foo") > 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"bar") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"éàè") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"123") < 0)

        request.params.update(dict(s_name="bar"))
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"foo") > 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"bar") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"éàè") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"123") < 0)

        request = self._create_dummy_request()
        request.method = "POST"
        request.body = SUBSTITUTION_GETFEATURE_REQUEST
        request.params.update(dict(S_NAME="bar"))
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"foo") > 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"bar") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"éàè") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"123") < 0)

        request = self._create_dummy_request()
        request.method = "POST"
        request.body = SUBSTITUTION_GETFEATURE_REQUEST
        request.registry.settings["functionalities"]["anonymous"] = {
            "mapserver_substitution": ["name=bar"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"foo") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"bar") > 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"éàè") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"123") < 0)

        request.body = COLUMN_RESTRICTION_GETFEATURE_REQUEST
        request.registry.settings["functionalities"]["anonymous"] = {
            "mapserver_substitution":
            ["cols=name", "cols=city", "cols=country"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"Lausanne") > 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"Swiss") > 0)

        request.registry.settings["functionalities"]["anonymous"] = {
            "mapserver_substitution": ["cols=name", "cols=city"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"Lausanne") > 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"Swiss") < 0)

        request.registry.settings["functionalities"]["anonymous"] = {
            "mapserver_substitution": ["cols=name", "cols=country"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"Lausanne") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"Swiss") > 0)

        request.registry.settings["functionalities"]["anonymous"] = {
            "mapserver_substitution": ["cols=name"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"Lausanne") < 0)
        self.assertTrue(
            unicode(response.body.decode("utf-8")).find(u"Swiss") < 0)

        request = self._create_dummy_request()
        request.registry.settings["admin_interface"] = {
            "available_functionalities": ["mapserver_substitution"]
        }
        request.method = "POST"
        request.body = SUBSTITUTION_GETFEATURE_REQUEST
        request.registry.settings["functionalities"]["anonymous"] = {
            "mapserver_substitution": ["foo_bar"]
        }
        request.params.update(
            dict(s_test1="to be removed", S_TEST2="to be removed"))
        # just pass in the log messagse
        response = MapservProxy(request).proxy()
Ejemplo n.º 28
0
    def test_substitution(self):
        request = self._create_dummy_request()
        request.method = 'POST'
        request.body = SUBSTITUTION_GETFEATURE_REQUEST

        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'foo') > 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'bar') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'éàè') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'123') < 0)

        request.params.update(dict(s_name='bar'))
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'foo') > 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'bar') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'éàè') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'123') < 0)

        request = self._create_dummy_request()
        request.method = 'POST'
        request.body = SUBSTITUTION_GETFEATURE_REQUEST
        request.params.update(dict(S_NAME='bar'))
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'foo') > 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'bar') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'éàè') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'123') < 0)

        request = self._create_dummy_request()
        request.method = 'POST'
        request.body = SUBSTITUTION_GETFEATURE_REQUEST
        request.registry.settings['functionalities']['anonymous'] = {
            "mapserver_substitution": ["name=bar"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'foo') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'bar') > 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'éàè') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'123') < 0)

        request.body = COLUMN_RESTRICTION_GETFEATURE_REQUEST
        request.registry.settings['functionalities']['anonymous'] = {
            "mapserver_substitution": ["cols=name", "cols=city", "cols=country"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'Lausanne') > 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'Swiss') > 0)

        request.registry.settings['functionalities']['anonymous'] = {
            "mapserver_substitution": ["cols=name", "cols=city"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'Lausanne') > 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'Swiss') < 0)

        request.registry.settings['functionalities']['anonymous'] = {
            "mapserver_substitution": ["cols=name", "cols=country"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'Lausanne') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'Swiss') > 0)

        request.registry.settings['functionalities']['anonymous'] = {
            "mapserver_substitution": ["cols=name"]
        }
        response = MapservProxy(request).proxy()
        self.assertTrue(response.status_int, 200)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'Lausanne') < 0)
        self.assertTrue(unicode(response.body.decode('utf-8')).find(u'Swiss') < 0)

        request = self._create_dummy_request()
        request.method = 'POST'
        request.body = SUBSTITUTION_GETFEATURE_REQUEST
        request.registry.settings['functionalities']['anonymous'] = {
            "mapserver_substitution": ["foo_bar"]
        }
        request.params.update(dict(
            s_test1='to be removed', S_TEST2='to be removed'
        ))
        # just pass in the log messagse
        response = MapservProxy(request).proxy()
Ejemplo n.º 29
0
    def test_no_params(self):
        from c2cgeoportal.views.mapserverproxy import MapservProxy

        request = self._create_dummy_request()
        response = MapservProxy(request).proxy()
        self.assertEqual(response.status_code, 200)