def test_it(self): from StringIO import StringIO import webob import gzip import paste.gzipper from wiseguy.loader import AppLoader loader = AppLoader() loader.add_component('dummyfilter', DummyFilter) loader.add_component('dummycomponent', DummyComponent) loader.load_yaml(test_config_file) app_factory = loader.get_app_factory('main') app = app_factory() self.assertEqual(app.__class__, paste.gzipper.middleware) self.assertEqual(app.application.__class__, DummyFilterFactory) self.assertEqual(app.application.app.__class__, DummyFactory) request = webob.Request.blank('/') request.environ['HTTP_ACCEPT_ENCODING'] = 'gzip' status, headerlist, body = request.call_application(app) self.assertEqual(status, '200 OK') self.assertEqual(headerlist, [('Content-Type', 'text/html; charset=UTF-8'), ('content-encoding', 'gzip'), ('Content-Length', '38')]) io = StringIO(body[0]) f = gzip.GzipFile(mode='r', fileobj=io) self.assertEqual(f.read(), '<h1>Hello dummy</h1>')
def main(argv=None): if argv is None: import sys argv = sys.argv parser = optparse.OptionParser( description=__doc__, formatter=HelpFormatter(), ) parser.add_option('--list', dest='list_components', action='store_true', default=False, help="List available components") options, args = parser.parse_args(argv[1:]) if args: if args[0] == 'webconfig': from wiseguy.web.app import configurator serve(configurator) if args[0] == 'serve': filename = args[1] loader = AppLoader() loader.load_yaml(filename) app_factory = loader.get_app_factory('main') app = app_factory() serve(app) if options.list_components: ep_parser = EPParser() for component_name, component in ep_parser.get_components(): print component_name, component
def configurator(environ, start_response): request = webob.Request(environ) loader = AppLoader() rendering = '' if request.path_info == '/': schema = SectionSchema() schema = schema.bind(loader=loader) form = deform.Form(schema, buttons=('submit', )) if request.POST.get('submit'): controls = request.POST.items() try: captured = form.validate(controls) response = webob.exc.HTTPFound( location='/app?name=%(name)s&component=%(component)s' % captured) return response(environ, start_response) except deform.ValidationFailure, e: rendering = e.render() else: rendering = form.render()