Beispiel #1
0
def make_app(global_conf, full_stack=True, **app_conf):
    """
    Set biorepo up with the settings found in the PasteDeploy configuration
    file used.

    @param global_conf: The global settings for biorepo (those
        defined under the ``[DEFAULT]`` section).
    @type global_conf: dict
    @param full_stack: Should the whole TG2 stack be set up?
    @type full_stack: str or bool
    @return: The biorepo application with all the relevant middleware
        loaded.

    This is the PasteDeploy factory for the biorepo application.

    ``app_conf`` contains all the application-specific settings (those defined
    under ``[app:main]``.


    """
    #app = make_base_app(global_conf, full_stack=True, **app_conf)

    ####begin test
    inject_resources = True
    serve_resources = True
    if 'prefix' in app_conf:
        custom = lambda app: twc.make_middleware(
            app,
            serve_resources=serve_resources,
            inject_resources=inject_resources,
            script_name=app_conf['prefix'])
        print app_conf['prefix'], "------- prefix"
    else:
        custom = lambda app: twc.make_middleware(
            app,
            serve_resources=serve_resources,
            inject_resources=inject_resources)
        print "------ no prefix found"
    app = make_base_app(global_conf,
                        wrap_app=custom,
                        full_stack=True,
                        **app_conf)
    ####end test

    # Wrap your base TurboGears 2 application with custom middleware here
    # This custom middleware is about authentication
    app = make_middleware_with_config(
        app, global_conf, app_conf.get('who.config_file', 'who.ini'),
        app_conf.get('who.log_file', 'auth.log'),
        app_conf.get('who.log_level', 'debug'))

    return app
Beispiel #2
0
    def test_rendering_extension_propagation(self):
        mw = twc.make_middleware(None, preferred_rendering_engines=['genshi', 'jinja'],
                                       rendering_extension_lookup={'genshi':['genshi', 'html'],
                                                                   'jinja':['jinja']})
        assert twc.templating.get_engine_name('tw2.core.test_templates.parent_genshi', mw) == 'genshi'

        #flush caches to avoid wrong results due to cached results
        twc.util.flush_memoization()
        twc.templating.engine_name_cache = {}

        mw = twc.make_middleware(None, preferred_rendering_engines=['genshi', 'jinja'],
                                       rendering_extension_lookup={'genshi':['genshi'],
                                                                   'jinja':['jinja', 'html']})
        assert twc.templating.get_engine_name('tw2.core.test_templates.parent_genshi', mw) == 'jinja'
 def test_params_as_vars(self):
     import mako
     class MyTest(twc.Widget):
         template = 'mako:tw2.core.test_templates.simple_mako'
         test= twc.Param('blah', default='hello')
     testapi.request(1)
     twc.core.request_local()['middleware'] = twc.make_middleware(None, params_as_vars=True)
     MyTest.display()
     twc.core.request_local()['middleware'] = twc.make_middleware(None, params_as_vars=False)
     try:
         MyTest.display()
         assert(False)
     except TypeError:
         # this will raise a type error because "Undefined" is found (not a string)
         pass
Beispiel #4
0
 def test_widget_nesting(self):
     twc.core.request_local()["middleware"] = twc.make_middleware(None)
     for outer, inner in itertools.product(engines, engines):
         outer = "%s:tw2.core.test_templates.widget_%s" % (outer, outer)
         inner = "%s:tw2.core.test_templates.inner_%s" % (inner, inner)
         test = twc.CompoundWidget(id="x", template=outer, children=[TestWD(id="y", template=inner)])
         eq_(test.display(), "<p>TEST <p>TEST bob</p></p>")
Beispiel #5
0
    def setup_tw(repl_app):
        # Stack TW's middleware configured with dummy default_view to signal
        # that a widget is being displayed so we can wrap and register its
        # output.
        conf = {
            'toscawidgets.framework.default_view': 'tw_repl',
            'toscawidgets.middleware.inject_resources': True
        }
        repl_app.app = twc.make_middleware(repl_app.app, conf)

        # monkey-patch display and render to hijack output
        def wrap(f):
            if f.func_name == 'wrapper':
                return f

            def wrapper(self, value=None, **kw):
                if self.displays_on == 'tw_repl':
                    o = DeferredDisplay(self, value, **kw)
                    repl_app.displayed_widgets[o.id] = o
                else:
                    o = f(self, value, **kw)
                return o

            return wrapper

        twc.Widget.display = wrap(twc.Widget.display)
        twc.Widget.render = wrap(twc.Widget.render)
Beispiel #6
0
 def _check_render(self, template, data, expected, engine=None):
     if engine:
         mw = twc.make_middleware(None, preferred_rendering_engines=[engine])
         testapi.request(1, mw)
     out = twc.template.EngineManager().render(template, 'string', data)
     assert(isinstance(out, unicode))
     assert out == expected, out
Beispiel #7
0
def test_jquery_script_name():
    twc.core.request_local()['middleware'] = \
        twc.make_middleware(script_name='/lol')
    from tw2.jquery import jquery_js
    twc.core.request_local()['middleware'].script_name = '/lol'
    the_link = '/lol/resources/tw2.jquery/static/jquery/1.7.1/jquery.js'
    eq_(jquery_js.req().link, the_link)
Beispiel #8
0
def dev_server(
    app=None, host='127.0.0.1', port=8000, logging=True, weberror=True,
    use_threadpool=None, threadpool_workers=10, request_queue_size=5,
    repoze_tm=False, **config):
    """
    Run a development server, hosting the ToscaWidgets application.
    This requires Paste and WebError, which are only sure to be available if
    tw2.devtools is installed.
    """
    config.setdefault('debug', True)
    config.setdefault('controller_prefix', '/')
    app = twc.make_middleware(app, **config)

    if repoze_tm:
        import repoze.tm as rtm, tw2.sqla as tws
        app = rtm.TM(app, tws.commit_veto)

    if weberror:
        import weberror.errormiddleware as we
        app = we.ErrorMiddleware(app, debug=True)

    if logging:
        import paste.translogger as pt
        app = pt.TransLogger(app)

    import paste.httpserver as ph
    ph.serve(app, host=host, port=port,
             use_threadpool=use_threadpool,
             threadpool_workers=threadpool_workers,
             request_queue_size=request_queue_size)
Beispiel #9
0
 def test_params_as_vars(self):
     import mako
     class MyTest(twc.Widget):
         template = 'mako:tw2.core.test_templates.simple_mako'
         test= twc.Param('blah', default='hello')
     testapi.request(1)
     twc.core.request_local()['middleware'] = twc.make_middleware(None, params_as_vars=True)
     MyTest.display()
     twc.core.request_local()['middleware'] = twc.make_middleware(None, params_as_vars=False)
     try:
         MyTest.display()
         assert(False)
     except NameError:
         # this will raise a name error because "Undefined"
         # is found (not a string)
         pass
Beispiel #10
0
 def test_widget_display(self):
     twc.core.request_local()['middleware'] = twc.make_middleware(None)
     mtest = TestWD(id='x')
     for eng in engines:
         test = mtest.req()
         test.template = '%s:tw2.core.test_templates.inner_%s' % (eng, eng)
         out = test.display()
         eq_(out, '<p>TEST bob</p>')
Beispiel #11
0
 def test_widget_display(self):
     twc.core.request_local()["middleware"] = twc.make_middleware(None)
     mtest = TestWD(id="x")
     for eng in engines:
         test = mtest.req()
         test.template = "%s:tw2.core.test_templates.inner_%s" % (eng, eng)
         out = test.display()
         eq_(out, "<p>TEST bob</p>")
Beispiel #12
0
 def test_widget_display(self):
     twc.core.request_local()['middleware'] = twc.make_middleware(None)
     mtest = TestWD(id='x')
     for eng in engines:
         test = mtest.req()
         test.template = '%s:tw2.core.test_templates.inner_%s' % (eng, eng)
         out = test.display()
         eq_(out, '<p>TEST bob</p>')
Beispiel #13
0
def make_app(global_conf, full_stack=True, **app_conf):
    """
    Set biorepo up with the settings found in the PasteDeploy configuration
    file used.

    @param global_conf: The global settings for biorepo (those
        defined under the ``[DEFAULT]`` section).
    @type global_conf: dict
    @param full_stack: Should the whole TG2 stack be set up?
    @type full_stack: str or bool
    @return: The biorepo application with all the relevant middleware
        loaded.

    This is the PasteDeploy factory for the biorepo application.

    ``app_conf`` contains all the application-specific settings (those defined
    under ``[app:main]``.


    """
    #app = make_base_app(global_conf, full_stack=True, **app_conf)

    ####begin test
    inject_resources = True
    serve_resources = True
    if 'prefix' in app_conf:
        custom = lambda app: twc.make_middleware(app, serve_resources=serve_resources, inject_resources=inject_resources, script_name=app_conf['prefix'])
        print app_conf['prefix'], "------- prefix"
    else:
        custom = lambda app: twc.make_middleware(app, serve_resources=serve_resources, inject_resources=inject_resources)
        print "------ no prefix found"
    app = make_base_app(global_conf, wrap_app=custom, full_stack=True, **app_conf)
    ####end test

    # Wrap your base TurboGears 2 application with custom middleware here
    # This custom middleware is about authentication
    app = make_middleware_with_config(
        app,
        global_conf,
        app_conf.get('who.config_file', 'who.ini'),
        app_conf.get('who.log_file', 'auth.log'),
        app_conf.get('who.log_level', 'debug')
    )

    return app
Beispiel #14
0
    def test_rendering_extension_propagation(self):
        mw = twc.make_middleware(
            None,
            preferred_rendering_engines=["genshi", "jinja"],
            rendering_extension_lookup={"genshi": ["genshi", "html"], "jinja": ["jinja"]},
        )
        assert twc.templating.get_engine_name("tw2.core.test_templates.parent_genshi", mw) == "genshi"

        # flush caches to avoid wrong results due to cached results
        twc.util.flush_memoization()
        twc.templating.engine_name_cache = {}

        mw = twc.make_middleware(
            None,
            preferred_rendering_engines=["genshi", "jinja"],
            rendering_extension_lookup={"genshi": ["genshi"], "jinja": ["jinja", "html"]},
        )
        assert twc.templating.get_engine_name("tw2.core.test_templates.parent_genshi", mw) == "jinja"
Beispiel #15
0
    def _check_render(self, template, data, expected, engine=None):
        if engine:
            mw = twc.make_middleware(None, preferred_rendering_engines=[engine])
            testapi.request(1, mw)
            twc.util.flush_memoization()

        out = twc.templating.render(template, "string", data)
        assert isinstance(out, six.text_type)
        eq_(out, expected)
Beispiel #16
0
    def test_params_as_vars(self):
        import mako

        class MyTest(twc.Widget):
            template = "mako:tw2.core.test_templates.simple_mako"
            test = twc.Param("blah", default="hello")

        testapi.request(1)
        twc.core.request_local()["middleware"] = twc.make_middleware(None, params_as_vars=True)
        MyTest.display()
        twc.core.request_local()["middleware"] = twc.make_middleware(None, params_as_vars=False)
        try:
            MyTest.display()
            assert False
        except NameError:
            # this will raise a name error because "Undefined"
            # is found (not a string)
            pass
Beispiel #17
0
 def test_widget_nesting(self):
     twc.core.request_local()['middleware'] = twc.make_middleware(None)
     for outer, inner in itertools.product(engines, engines):
         outer = '%s:tw2.core.test_templates.widget_%s' % (outer, outer)
         inner = '%s:tw2.core.test_templates.inner_%s' % (inner, inner)
         test = twc.CompoundWidget(
             id='x',
             template=outer,
             children=[TestWD(id='y', template=inner)])
         eq_(test.display(), '<p>TEST <p>TEST bob</p></p>')
Beispiel #18
0
    def _check_render(self, template, data, expected, engine=None):
        if engine:
            mw = twc.make_middleware(None,
                                     preferred_rendering_engines=[engine])
            testapi.request(1, mw)
            twc.util.flush_memoization()

        out = twc.templating.render(template, 'string', data)
        assert (isinstance(out, six.text_type))
        eq_(out, expected)
Beispiel #19
0
 def test_widget_nesting(self):
     twc.core.request_local()['middleware'] = twc.make_middleware(None)
     for outer in engines:
         for inner in engines:
             test = twc.CompoundWidget(id='x',
                 template = '%s:tw2.core.test_templates.widget_%s' % (outer, outer),
                 children=[
                     TestWD(id='y', template='%s:tw2.core.test_templates.inner_%s' % (inner, inner)),
                 ]
             )
             assert(test.display().replace(kid_prefix, '') == '<p>TEST <p>TEST bob</p></p>')
Beispiel #20
0
 def test_auto_select_unavailable_engine_not_strict(self):
     engine = 'mako'
     mw = twc.make_middleware(
         None,
         preferred_rendering_engines=[engine],
         strict_engine_selection=False,
     )
     testapi.request(501, mw)
     self._check_render(
         'tw2.core.test_templates.simple_genshi',
         {'test':'blah!'},
         '<p>TEST blah!</p>',
     )
Beispiel #21
0
    def setup(self):
        global _request_local
        _request_local = {}
        self.mw = twc.make_middleware(self)
        self.app = wt.TestApp(self.mw)

        js = twc.JSLink(link='paj')
        css = twc.CSSLink(link='joe')
        TestWidget = twc.Widget(
            template='genshi:tw2.core.test_templates.inner_genshi',
            test='test',
        )
        self.inject_widget = TestWidget(id='a', resources=[js, css])
Beispiel #22
0
 def test_auto_select_unavailable_engine_not_strict(self):
     engine = 'mako'
     mw = twc.make_middleware(
         None,
         preferred_rendering_engines=[engine],
         strict_engine_selection=False,
     )
     testapi.request(501, mw)
     self._check_render(
         'tw2.core.test_templates.simple_genshi',
         {'test': 'blah!'},
         '<p>TEST blah!</p>',
     )
Beispiel #23
0
    def setUp(self):
        global _request_local
        _request_local = {}
        self.mw = twc.make_middleware(self)
        self.app = wt.TestApp(self.mw)

        js = twc.JSLink(link='paj')
        css = twc.CSSLink(link='joe')
        TestWidget = twc.Widget(
            template='genshi:tw2.core.test_templates.inner_genshi',
            test='test',
        )
        self.inject_widget = TestWidget(id='a', resources=[js, css])
Beispiel #24
0
    def testAddCall(self):
        class T(wd.Widget):
            test = twc.Param("blah", default="hello")
            template = "mako:tw2.core.test_templates.simple_mako"

        i = T(id="foo").req()
        jscall = ["somefunc", "bodybottom"]
        i.add_call(jscall[0], jscall[1])
        self.assert_(jscall in i._js_calls)
        testapi.request(1)
        twc.core.request_local()["middleware"] = twc.make_middleware(None, params_as_vars=True)
        res = i.display(displays_on="string")
        self.assert_(res)
        self.assert_(i.resources)
Beispiel #25
0
    def test_rendering_extension_propagation(self):
        mw = twc.make_middleware(
            None,
            preferred_rendering_engines=['genshi', 'jinja'],
            rendering_extension_lookup={
                'genshi': ['genshi', 'html'],
                'jinja': ['jinja']
            })
        assert twc.templating.get_engine_name(
            'tw2.core.test_templates.parent_genshi', mw) == 'genshi'

        #flush caches to avoid wrong results due to cached results
        twc.util.flush_memoization()
        twc.templating.engine_name_cache = {}

        mw = twc.make_middleware(
            None,
            preferred_rendering_engines=['genshi', 'jinja'],
            rendering_extension_lookup={
                'genshi': ['genshi'],
                'jinja': ['jinja', 'html']
            })
        assert twc.templating.get_engine_name(
            'tw2.core.test_templates.parent_genshi', mw) == 'jinja'
Beispiel #26
0
    def testAddCall(self):
        class T(wd.Widget):
            test = twc.Param('blah', default='hello')
            template = 'mako:tw2.core.test_templates.simple_mako'

        i = T(id="foo").req()
        jscall = ["somefunc", "bodybottom"]
        i.add_call(jscall[0], jscall[1])
        self.assert_(jscall in i._js_calls)
        testapi.request(1)
        twc.core.request_local()['middleware'] = twc.make_middleware(
            None, params_as_vars=True)
        res = i.display(displays_on="string")
        self.assert_(res)
        self.assert_(i.resources)
Beispiel #27
0
    def test_widget_relative_inheritance(self):
        twc.core.request_local()['middleware'] = twc.make_middleware(None)

        # These aren't yet supported in the tests yet.
        ignored_engines = ['jinja', 'kajiki', 'chameleon']

        for engine in engines:
            if engine in ignored_engines:
                continue
            template = "%s:tw2.core.test_templates.child_%s" % (engine, engine)
            test = twc.Widget(id='x', template=template)
            expected = """
            <html>
                <head><title>Parent</title></head>
                <body>Child</body>
            </html>
            """
            assert_eq_xhtml(test.display(), expected)
Beispiel #28
0
    def test_widget_relative_inheritance(self):
        twc.core.request_local()["middleware"] = twc.make_middleware(None)

        # These aren't yet supported in the tests yet.
        ignored_engines = ["jinja", "kajiki", "chameleon"]

        for engine in engines:
            if engine in ignored_engines:
                continue
            template = "%s:tw2.core.test_templates.child_%s" % (engine, engine)
            test = twc.Widget(id="x", template=template)
            expected = """
            <html>
                <head><title>Parent</title></head>
                <body>Child</body>
            </html>
            """
            assert_eq_xhtml(test.display(), expected)
Beispiel #29
0
 def __init__(self,
              global_conf={},
              template_dirs=None,
              interactive=False,
              docs_dir=None,
              full_stack=True):
     if isinstance(template_dirs, basestring):
         template_dirs = template_dirs.split()
     template_dirs = template_dirs or []
     template_dirs.append(
         resource_filename('moksha.widgetbrowser', 'templates'))
     self.loader = TemplateLoader(template_dirs)
     self.interactive = asbool(interactive)
     if self.interactive:
         self.http_repl = repl.WidgetReplApp(globals(), weakref.proxy(self))
         self.context = self.http_repl.repl.locals
     else:
         self.context = None
         self.http_repl = exc.HTTPForbidden("Interactive mode is disabled")
     if docs_dir:
         from paste.cascade import Cascade
         dest_dir = os.path.abspath(os.path.join(docs_dir))
         #log.info('Building docs...')
         #try:
         #    util.build_docs(docs_dir, dest_dir)
         #except Exception, e:
         #    log.warning('Skipping building docs: %s' % str(e))
         self.built_docs = dest_dir
         self.app = Cascade([self.docs_app, self.app])
     if asbool(full_stack):
         self.app = twc.make_middleware(
             self.app, {
                 'toscawidgets.framework.default_view': 'genshi',
             },
             stack_registry=True)
     self._default_controllers = dict(demo=self.show_demo,
                                      index=self.show_index,
                                      template=self.show_template,
                                      parameters=self.show_parameters,
                                      source=self.show_source,
                                      demo_source=self.show_demo_source)
Beispiel #30
0
def dev_server(
    app=None, host='127.0.0.1', port=8000, logging=True, weberror=True,
    use_threadpool=None, threadpool_workers=10, request_queue_size=5,
    repoze_tm=False, **config):
    """
    Run a development server, hosting the ToscaWidgets application.
    This requires gearbox and WebError, which are only sure to be available if
    tw2.devtools is installed.
    """
    config.setdefault('debug', True)
    config.setdefault('controller_prefix', '/')
    app = twc.make_middleware(app, **config)

    if repoze_tm:
        import repoze.tm as rtm
        import tw2.sqla as tws
        app = rtm.TM(app, tws.commit_veto)

    if weberror:
        import weberror.errormiddleware as we
        app = we.ErrorMiddleware(app, debug=True)

    # TODO - this got left behind in the python3 port.  Revive it.
    #if logging:
    #    import paste.translogger as pt
    #    app = pt.TransLogger(app)

    # Handle old and new versions of gearbox.
    try:
        from gearbox.commands.serve import wsgiref_server_runner
    except ImportError:
        from gearbox.commands.server import wsgiref_server_runner

    wsgiref_server_runner(
        app,
        host=host, port=port,
        use_threadpool=use_threadpool,
        threadpool_workers=threadpool_workers,
        request_queue_size=request_queue_size,
    )
Beispiel #31
0
 def setUp(self):
     testapi.setup()
     self.twe = encoder  # Use TW2 encoder
     self.encode = self.twe.encode
     mw = twc.make_middleware(lambda *args, **kw: "I'm an app, lol!")
     testapi.request(1, mw=mw)
Beispiel #32
0
import tw2.core as twc, tw2.forms as twf, tw2.yui as twy

opts = ["Paj", {"label": "blah", "children": ["a", "b", "c"]}, "Joe"]


class Index(twf.FormPage):
    title = "YUI Test"
    attrs = {"class": "yui-skin-sam"}

    class child(twf.Form):
        class child(twf.TableLayout):
            check = twf.CheckBox(validator=twc.Required)
            color = twy.TreeView(options=opts)


if __name__ == "__main__":
    import wsgiref.simple_server as wrs

    wrs.make_server("", 8000, twc.make_middleware(controller_prefix="/")).serve_forever()
Beispiel #33
0
def test_fontawesome_scriptname():
    twc.core.request_local()['middleware'] = twc.make_middleware(
        script_name='/foo')
    from tw2.fontawesome import fontawesome_css
    the_link = "/foo/resources/tw2.fontawesome/static/css/font-awesome.css"
    eq_(fontawesome_css.req().link, the_link)
Beispiel #34
0
 def setUp(self):
     twc.core.request_local = request_local_tst
     twc.core.request_local()['middleware'] = twc.make_middleware()
     self.w = MokshaContainer(id='test')
js = twc.JSLink(link='paj')
css = twc.CSSLink(link='joe')
csssrc = twc.CSSSource(src='.bob { font-weight: bold; }')
jssrc = twc.JSSource(src='bob')

html = "<html><head><title>a</title></head><body>hello</body></html>"


def simple_app(environ, start_response):
    req = wo.Request(environ)
    ct = 'text/html' if req.path == '/' else 'test/plain'
    resp = wo.Response(request=req, content_type="%s; charset=UTF8" % ct)
    resp.body = html
    return resp(environ, start_response)

mw = twc.make_middleware(simple_app)


def setup():
    testapi.setup()


def test_weird_case_for_zykes():
    rl = testapi.request(1, mw)
    tw2.jqplugins.ui.jquery_ui.inject()

    rl = twc.core.request_local()
    r = rl['resources']
    import pprint
    pprint.pprint(rl['resources'])
    for r in rl['resources']:
def test_fontawesome_scriptname():
    twc.core.request_local()['middleware'] = twc.make_middleware(
            script_name='/foo')
    from tw2.fontawesome import fontawesome_css
    the_link = "/foo/resources/tw2.fontawesome/static/css/font-awesome.css"
    eq_(fontawesome_css.req().link, the_link)
Beispiel #37
0
 def test_auto_select_unavailable_engine_not_strict(self):
     engine = "mako"
     mw = twc.make_middleware(None, preferred_rendering_engines=[engine], strict_engine_selection=False)
     testapi.request(501, mw)
     self._check_render("tw2.core.test_templates.simple_genshi", {"test": "blah!"}, "<p>TEST blah!</p>")
Beispiel #38
0
import tw2.core as twc, tw2.forms as twf


class Index(twf.FormPage):
    title = 'GridLayout Validation'

    class child(twf.Form):
        class child(twf.GridLayout):
            repetitions = 5
            name = twf.TextField(validator=twc.Required)
            email = twf.TextField(validator=twc.EmailValidator())


if __name__ == '__main__':
    import wsgiref.simple_server as wrs
    wrs.make_server(
        '', 8000, twc.make_middleware(controller_prefix='/')).serve_forever()
Beispiel #39
0
 def __init__(self, app):
     self.app = app
     self.app.extensions['toscawidgets'] = self
     config = self.extract_config(self.app)
     self.mw = twc.make_middleware(self.app.wsgi_app, **config)
     self.app.wsgi_app = self.mw
Beispiel #40
0
def tw_middleware(app):
    conf = {'default_view':'genshi'}
    return twc.make_middleware(app, **conf)
Beispiel #41
0
 def setUp(self):
     testapi.setup()
     self.twe = encoder  # Use TW2 encoder
     self.encode = self.twe.encode
     mw = twc.make_middleware(lambda *args, **kw: "I'm an app, lol!")
     testapi.request(1, mw=mw)
Beispiel #42
0
 def setUp(self):
     twc.core.request_local = request_local_tst
     twc.core.request_local()['middleware'] = twc.make_middleware()
     self.w = MokshaContainer(id='test')
Beispiel #43
0
html = "<html><head><title>a</title></head><body>hello</body></html>"

inject_widget = TestWidget(id='a', resources=[js])

def simple_app(environ, start_response):
    req = wo.Request(environ)
    ct = 'text/html' if req.path == '/' else 'test/plain'
    resp = wo.Response(request=req, content_type="%s; charset=UTF8" % ct)
    inject_widget.display()
    if six.PY3:
        resp.text = html
    else:
        resp.body = html
    return resp(environ, start_response)

mw = twc.make_middleware(simple_app)
tst_mw = wt.TestApp(mw)

class TestResources(object):
    def setUp(self):
        testapi.setup()

    def test_res_collection(self):
        rl = testapi.request(1, mw)
        wa = TestWidget(id='a')
        wb = TestWidget(id='b', resources=[js, css])
        wa.display()
        rl = twc.core.request_local()
        assert(len(rl.get('resources', [])) == 0)
        wb.display()
        for r in rl['resources']:
</table>
<div class="push"></div>
</div>
    <div class="footer">
    <p>This is a project of <a href="http://threebean.org">[three]Bean.org</a>.  Tests are
    run nightly.  Last generated at ${timestamp}.</p>
    <p>
    If you'd like to see your widget library listed on this page or the
    <a href="http://tw2-demos.threebean.org">demo page</a>, please email the
    <a href="http://groups.google.com/group/toscawidgets-discuss">toscawidgets-discuss</a> mailing list.</p>
    </div>
</body>
</html>
"""

if __name__ == '__main__':
    # Ridiculous hack :/
    rl = tw2.core.core.request_local()
    rl.clear()
    rl['middleware'] = make_middleware()
    page = page.req()

    for r in repos:
        r.gather_results()
    template = mako.template.Template(tmpl_str)
    output = template.render(repos=repos, sparkwidget=page.commits,
                             timestamp=datetime.now().strftime('%F %T'))
    with open('htmlcov/index.html', 'w') as f:
        f.write(output)

Beispiel #45
0
def setup():
    twc.core.request_local = request_local_tst
    twc.core.request_local()['middleware'] = twc.make_middleware()
Beispiel #46
0
import tw2.core as twc, tw2.forms as twf

opts = ['Red', 'Yellow', 'Green', 'Blue']

class Index(twf.FormPage):
    title = 'tw2.forms Deep Children'
    class child(twf.Form):
        class child(twc.CompoundWidget):
            class noname(twf.TableFieldSet):
                id = None
                legend = 'Contact Info'
                name = twf.TextField()
                email = twf.TextField(validator=twc.EmailValidator())
            class noname2(twf.TableFieldSet):
                id = None
                legend = 'Work Info'
                job_title = twf.TextField(validator=twc.Required)
                location = twf.TextField()

if __name__ == "__main__":
    import wsgiref.simple_server as wrs
    wrs.make_server('', 8000, twc.make_middleware(controller_prefix='/')).serve_forever()
Beispiel #47
0
def setup():
    twc.core.request_local = request_local_tst
    twc.core.request_local()['middleware'] = twc.make_middleware()
Beispiel #48
0
 def setup(self):
     global _request_local
     _request_local = {}
     self.mw = twc.make_middleware(self)
     self.app = wt.TestApp(self.mw)