cubicweb/devtools/webtest.py
author Denis Laxalde <denis.laxalde@logilab.fr>
Tue, 21 Feb 2017 08:54:20 +0100
changeset 11968 bb0dfc7d2d0e
parent 11057 0b59724cb3f2
permissions -rw-r--r--
[skeleton,pyramid] Move pyramid app definition in cubicweb.pyramid module The application definition is actually not specific to the final "cube" being bootstrapped from skeleton. This patch thus move the pyramid application function into cubicweb.pyramid module and let cubicweb register the "paste.app_factory" entry point (instead of the bootstrapped cube). Useless call to `config.scan` is dropped along the way.

from __future__ import absolute_import

import webtest

from cubicweb.wsgi import handler
from cubicweb.devtools.testlib import CubicWebTC


class CubicWebTestTC(CubicWebTC):
    def setUp(self):
        super(CubicWebTestTC, self).setUp()
        self.config.global_set_option('base-url', 'http://localhost.local/')
        # call load_configuration again to let the config reset its datadir_url
        self.config.load_configuration()
        webapp = handler.CubicWebWSGIApplication(self.config)
        self.webapp = webtest.TestApp(webapp)

    def tearDown(self):
        del self.webapp
        super(CubicWebTestTC, self).tearDown()

    def login(self, user=None, password=None, **args):
        if user is None:
            user = self.admlogin
        if password is None:
            password = self.admpassword if user == self.admlogin else user
        args.update({
            '__login': user,
            '__password': password
        })
        return self.webapp.get('/login', args)

    def logout(self):
        return self.webapp.get('/logout')