Пример #1
0
    def test_shortener_create_1(self):
        from tests import DummyRequest
        from pyramid.httpexceptions import HTTPFound
        from c2cgeoportal_geoportal.views.shortener import Shortener

        def route_url(name, *elements, **kw):
            return "https://example.com/short/" + kw["ref"]

        request = DummyRequest()
        request.user = None
        request.host = "example.com:443"
        request.server_name = "example.com"
        request.route_url = route_url
        request.registry.settings["shortener"] = {
            "base_url": "https://example.com/s/"
        }
        shortener = Shortener(request)

        request.params = {"url": "https://example.com/hi"}
        result = shortener.create()
        index = result["short_url"].rfind("/")
        self.assertEqual(result["short_url"][:index], "https://example.com/s")

        request.params = {}
        # fmt: off
        request.matchdict = {"ref": result["short_url"][index + 1:]}
        # fmt: on
        result = shortener.get()
        self.assertEqual(type(result), HTTPFound)
        self.assertEqual(result.location, "https://example.com/hi")
Пример #2
0
    def test_shortener_dev(self):
        from tests import DummyRequest

        from c2cgeoportal_geoportal.views.shortener import Shortener

        def route_url(name, *elements, **kw):
            return "https://localhost:8484/s/" + kw["ref"]

        request = DummyRequest()
        request.user = None
        request.host = "localhost:8484"
        request.server_name = "0.0.0.0"
        request.route_url = route_url
        request.registry.settings["shortener"] = {
            "base_url": "https://localhost:8484/s/",
            "allowed_hosts": [
                "localhost:8484",
            ],
        }
        shortener = Shortener(request)

        request.params = {"url": "https://localhost:8484/theme/Demo"}
        result = shortener.create()
        index = result["short_url"].rfind("/")
        self.assertEqual(result["short_url"][:index],
                         "https://localhost:8484/s")
Пример #3
0
    def test_shortener(self):
        from tests import DummyRequest
        from pyramid.httpexceptions import HTTPNotFound, HTTPBadRequest
        from c2cgeoportal_geoportal.views.shortener import Shortener

        def route_url(name, *args, **kwargs):
            del name  # Unused
            del args  # Unused
            return "https://example.com/short/" + kwargs["ref"]

        request = DummyRequest()
        request.user = None
        request.host = "example.com:443"
        request.server_name = "example.com"
        request.route_url = route_url
        request.registry.settings["shortener"] = {
            "base_url": "https://example.com/s/"
        }
        shortener = Shortener(request)

        request.params = {}
        request.matchdict = {"ref": "AAAAAA"}
        self.assertRaises(HTTPNotFound, shortener.get)

        request.params = {}
        request.matchdict = {}
        self.assertRaises(HTTPBadRequest, shortener.create)

        request.params = {"url": "https://other-site.com/hi"}
        self.assertRaises(HTTPBadRequest, shortener.create)
Пример #4
0
    def test_theme(self):
        from c2cgeoportal_geoportal.views.theme import Theme

        request = DummyRequest()
        request.static_url = lambda url: "http://example.com/dummy/static/url"
        request.route_url = lambda url, _query={}: mapserv_url
        request.user = None
        theme_view = Theme(request)
        _, errors = theme_view._themes("desktop2", True, 2)
        self.assertEqual(
            len([e for e in errors if e == "Too many recursions with group '__test_layer_group'"]), 1
        )
Пример #5
0
 def _request(query={}):
     query_ = {"interface": "test"}
     query_.update(query)
     request = DummyRequest(query_)
     request.route_url = (
         lambda url, _query=None: "/dummy/route/url/{}".format(url)
         if _query is None else "/dummy/route/url/{}?{}".format(
             url, "&".join(["=".join(e) for e in _query.items()])))
     request.static_url = (
         lambda url, _query=None: "/dummy/static/url/{}".format(url)
         if _query is None else "/dummy/static/url/{}?{}".format(
             url, "&".join(["=".join(e) for e in _query.items()])))
     return request
Пример #6
0
 def _request(query={}):
     query_ = {"interface": "test"}
     query_.update(query)
     request = DummyRequest(query_)
     request.route_url = (
         lambda url, _query=None: "/dummy/route/url/{}".format(url)
         if _query is None
         else "/dummy/route/url/{}?{}".format(url, pyramid.url.urlencode(_query))
     )
     request.static_url = (
         lambda url, _query=None: "/dummy/static/url/{}".format(url)
         if _query is None
         else "/dummy/static/url/{}?{}".format(url, pyramid.url.urlencode(_query))
     )
     return request
Пример #7
0
 def _request(query={}):
     query_ = {"interface": "test"}
     query_.update(query)
     request = DummyRequest(query_)
     request.route_url = (
         lambda url, _query=None: f"/dummy/route/url/{url}"
         if _query is None
         else f"/dummy/route/url/{url}?{pyramid.url.urlencode(_query)}"
     )
     request.static_url = (
         lambda url, _query=None: f"/dummy/static/url/{url}"
         if _query is None
         else f"/dummy/static/url/{url}?{pyramid.url.urlencode(_query)}"
     )
     request.get_organization_interface = lambda interface: interface
     return request
Пример #8
0
    def test_shortener_noreplace_2(self):
        from tests import DummyRequest
        from c2cgeoportal_geoportal.views.shortener import Shortener

        def route_url(name, *elements, **kw):
            return "https://example.com/short/" + kw["ref"]

        request = DummyRequest()
        request.user = None
        request.host = "example.com:443"
        request.server_name = "example.com"
        request.route_url = route_url
        request.registry.settings["shortener"] = {
            "base_url": "https://example.com/s/"
        }
        shortener = Shortener(request)

        request.params = {"url": "https://example.com/s/truite"}
        result = shortener.create()
        self.assertEqual(result["short_url"], "https://example.com/s/truite")