def browser(db_session, request, setup_app): """returns an instance of `zope.testbrowser`. The `kotti.testing.user` pytest marker (or `pytest.mark.user`) can be used to pre-authenticate the browser with the given login name: `@user('admin')`. """ from zope.testbrowser.wsgi import Browser from kotti.testing import BASE_URL host, port = BASE_URL.split(":")[-2:] browser = Browser("http://{}:{}/".format(host[2:], int(port)), wsgi_app=setup_app) marker = request.node.get_closest_marker("user") if marker: # set auth cookie directly on the browser instance... from pyramid.security import remember from pyramid.testing import DummyRequest login = marker.args[0] environ = dict(HTTP_HOST=host[2:]) for _, value in remember(DummyRequest(environ=environ), login): cookie, _ = value.split(";", 1) name, value = cookie.split("=") if name in browser.cookies: del browser.cookies[name] browser.cookies.create(name, value.strip('"'), path="/") return browser
def browser(db_session, request, setup_app): """ returns an instance of `zope.testbrowser`. The `kotti.testing.user` pytest marker (or `pytest.mark.user`) can be used to pre-authenticate the browser with the given login name: `@user('admin')`. """ from wsgi_intercept import add_wsgi_intercept, zope_testbrowser from kotti.testing import BASE_URL host, port = BASE_URL.split(":")[-2:] add_wsgi_intercept(host[2:], int(port), lambda: setup_app) browser = zope_testbrowser.WSGI_Browser(BASE_URL + "/") if "user" in request.keywords: # set auth cookie directly on the browser instance... from pyramid.security import remember from pyramid.testing import DummyRequest login = request.keywords["user"].args[0] environ = dict(HTTP_HOST=host[2:]) for _, value in remember(DummyRequest(environ=environ), login): cookie, _ = value.split(";", 1) name, value = cookie.split("=") if name in browser.cookies: del browser.cookies[name] browser.cookies.create(name, value.strip('"'), path="/") return browser
def browser(db_session, request, setup_app): """ returns an instance of `zope.testbrowser`. The `kotti.testing.user` pytest marker (or `pytest.mark.user`) can be used to pre-authenticate the browser with the given login name: `@user('admin')`. """ from zope.testbrowser.wsgi import Browser from kotti.testing import BASE_URL host, port = BASE_URL.split(":")[-2:] browser = Browser("http://{}:{}/".format(host[2:], int(port)), wsgi_app=setup_app) marker = request.node.get_closest_marker("user") if marker: # set auth cookie directly on the browser instance... from pyramid.security import remember from pyramid.testing import DummyRequest login = marker.args[0] environ = dict(HTTP_HOST=host[2:]) for _, value in remember(DummyRequest(environ=environ), login): cookie, _ = value.split(";", 1) name, value = cookie.split("=") if name in browser.cookies: del browser.cookies[name] browser.cookies.create(name, value.strip('"'), path="/") return browser
def browser(db_session, request): from wsgi_intercept import add_wsgi_intercept, zope_testbrowser from kotti.testing import BASE_URL host, port = BASE_URL.split(':')[-2:] add_wsgi_intercept(host[2:], int(port), setup_app) browser = zope_testbrowser.WSGI_Browser(BASE_URL + '/') if 'user' in request.keywords: # set auth cookie directly on the browser instance... from pyramid.security import remember from pyramid.testing import DummyRequest login = request.keywords['user'].args[0] environ = dict(HTTP_HOST=host[2:]) for _, value in remember(DummyRequest(environ=environ), login): cookie, _ = value.split(';', 1) name, value = cookie.split('=') if name in browser.cookies: del browser.cookies[name] browser.cookies.create(name, value.strip('"'), path='/') return browser
def browser(db_session, request, setup_app): """ returns an instance of `zope.testbrowser`. The `kotti.testing.user` pytest marker (or `pytest.mark.user`) can be used to pre-authenticate the browser with the given login name: `@user('admin')`. """ from wsgi_intercept import add_wsgi_intercept, zope_testbrowser from kotti.testing import BASE_URL host, port = BASE_URL.split(':')[-2:] add_wsgi_intercept(host[2:], int(port), lambda: setup_app) browser = zope_testbrowser.WSGI_Browser(BASE_URL + '/') if 'user' in request.keywords: # set auth cookie directly on the browser instance... from pyramid.security import remember from pyramid.testing import DummyRequest login = request.keywords['user'].args[0] environ = dict(HTTP_HOST=host[2:]) for _, value in remember(DummyRequest(environ=environ), login): cookie, _ = value.split(';', 1) name, value = cookie.split('=') if name in browser.cookies: del browser.cookies[name] browser.cookies.create(name, value.strip('"'), path='/') return browser