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")
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)
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")
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")
def test_login_0(self): from tests import DummyRequest from c2cgeoportal_geoportal.views.login import Login request = DummyRequest() request.is_valid_referer = True request.user = None login = Login(request) request.path = "/for_test" responce = login.loginform403() assert responce["came_from"] == "/for_test" request.params = {"came_from": "/for_a_second_test"} login = Login(request) responce = login.loginform() assert responce["came_from"] == "/for_a_second_test" login = Login(request) request.params = {} responce = login.loginform() assert responce["came_from"] == "/" request.registry.settings = { "functionalities": { "available_in_templates": ["func"] }, "admin_interface": { "available_functionalities": [{ "name": "func" }] }, } fill_tech_user_functionality("anonymous", (("func", "anon"), ("toto", "anon_value2"))) fill_tech_user_functionality("registered", (("func", "reg"), )) login = Login(request) self.assertEqual(login.loginuser()["functionalities"], {"func": ["anon"]}) class R: id = 123 def __init__(self, name, functionalities): self.name = name self.functionalities = functionalities class U: username = "******" is_password_changed = True email = "*****@*****.**" settings_role = None def __init__(self, role="__test_role", functionalities=None): if functionalities is None: functionalities = [] self.roles = [R(role, functionalities)] request.user = U() login = Login(request) expected = { "username": "******", "email": "*****@*****.**", "is_intranet": False, "two_factor_enable": False, "roles": [{ "name": "__test_role", "id": 123 }], "functionalities": { "func": ["reg"] }, } self.assertEqual(login.loginuser(), expected) class F: name = "func" value = "value" request.user = U("__test_role2", [F()]) login = Login(request) expected = { "username": "******", "email": "*****@*****.**", "is_intranet": False, "two_factor_enable": False, "roles": [{ "name": "__test_role2", "id": 123 }], "functionalities": { "func": ["value"] }, } self.assertEqual(login.loginuser(), expected)