def test_remaining_url_arg_parser(): with get(webify.wsgify(simplest.app), '/joe?times=10') as r: assert u'200' in r.status assert u'joe' in r.body assert u'Hello, joe!' in r.body assert len(re.findall(u'joe', r.body)) == 10 assert u'Hello, joe!' in r.body
def test_simplest(): with get(webify.wsgify(simplest.app), '/world?times=3') as r: assert u'200' in r.status body = r.body assert u'world' in body assert u'Hello, world!' in body assert len(re.findall('world', body)) == 3
def test_simplest_hello(): with get(webify.wsgify(simplest.app), '/') as r: assert u'200' in r.status assert u'world' in r.body assert u'Hello, world!' in r.body assert u'<br />' in r.body assert u'500' not in r.status assert u'Error' not in r.status assert u'Error' not in r.body
app = webify.defaults.app() from webify.templates.helpers import html # Controllers @app.subapp() @webify.urlable() def hello(req, p): name = req.params.get(u'name', u'world') p(hello_template(name)) # Templates # This would normally be in a different file in a different module @webify.template() def hello_template(p, name): with p(html.form(action=u'', method='GET')): p(u'Hello, %s! <br />' % name) p(u'Your name: %s' % html.input_text('name')) p(html.input_submit('name')) # Middleware from webify.middleware import EvalException wsgi_app = webify.wsgify(app, EvalException) # Server if __name__ == '__main__': webify.http.server.serve(wsgi_app, host='127.0.0.1', port='8080')
import webify @webify.single_app() def app(req, p, name): times = req.params.get(u'times', 1) for i in xrange(int(times)): p(u'Hello, %s!<br />' % (name or u'world')) if __name__ == '__main__': webify.run(webify.wsgify(app))
import re import webify from webify.middleware import EvalException, SettingsMiddleware import web_raven settings = { 'fff': [web_raven.all_figures, web_raven.all_feature_sets, web_raven.all_features], } app = webify.wsgify(web_raven.app, SettingsMiddleware(settings)) from webify.tests import get def test_pages(): with get(app, '/list') as r: assert(r.status == '200 OK') body = r.body link = re.findall(r'href="(.*?)"', r.body)[0] assert(link.startswith('/ask_matrix/')) assert(len(link) > 15) with get(app, link) as r: assert(r.status == '200 OK') image_links = re.findall(r'src="(.*?)"', r.body) for link in image_links: assert(link.startswith('/matrix_guess/') or link.startswith('/figure_image/')) assert(len(link) > 15) for link in image_links: with get(app, link) as r: assert(r.status == '200 OK')
# Middleware from webify.middleware import install_middleware, EvalException, SettingsMiddleware # Server from webify.http import server if __name__ == '__main__': mail_server = webify.email.LocalMailServer() users_db = couchdb.client.Database('htp://localhost:5984/frishy-users') updates_db = couchdb.client.Database('htp://localhost:5984/frishy-updates') settings = { 'mail_server': mail_server, 'users_db': users_db, 'updates_db': updates_db, } from beaker.middleware import SessionMiddleware wsgi_app = webify.wsgify(app) wrapped_app = install_middleware(wsgi_app, [ SettingsMiddleware(settings), EvalException, ]) wrapped_app = SessionMiddleware(wrapped_app, type='cookie', validate_key='randomstuff', key='mysession', secret='randomsecret') print 'Loading server...' server.serve(wrapped_app, host='127.0.0.1', port=8085, reload=True)
png = rpm_from_cmatrix(f, cmatrix) f = ColoredLinedShapeFigure([TripleShapeFeatureSet, TripleColorFeatureSet, TripleSmallPositiveIntegerFeatureSet,], [[Triangle, Square, Circle], [Yellow, Blue, Red], [V2, V8, V16]]) c = [2,1,0] png = f.render(c) k,v = webify.http.headers.content_types.image_png p.headers[k] = v p.encoding = None p(png) from webify.http import server if __name__ == '__main__': mail_server = webify.email.LocalMailServer() settings = { 'mail_server': mail_server, 'fff': [all_figures, all_feature_sets, all_features], } wsgi_app = webify.wsgify(app, SettingsMiddleware(settings), EvalException, ) print 'Loading server...' server.serve(wsgi_app, host='0.0.0.0', port=8087, reload=True)
import webify app = webify.apps.SingleApp() @app.subapp() @webify.urlable() def send(req, p): email = req.params.get(u'email', u'*****@*****.**') mail_server = req.settings[u'mail_server'] message = webify.email.create_text_message(u'*****@*****.**', [email], u'Hello, World!', u'I am sending you a text message') mail_server.send_message(message) p(u'Sent email.') # Middleware from webify.middleware import SettingsMiddleware mail_server = webify.email.TestMailServer() settings = {'mail_server': mail_server} wrapped_app = webify.wsgify(app, SettingsMiddleware(settings)) if __name__ == '__main__': webify.run(wrapped_app) # Try Loading http://127.0.0.1:8080/hello/world?times=1000000
def test_static_app(): content = u'''div {\n color: blue;\n}\n''' with get(webify.wsgify(standard.app), u'/static/style.css') as r: assert content == r.body
def test_layout(): with get(webify.wsgify(layouts.app), '/hello?name=joe') as r: assert u'200' in r.status assert u'joe' in r.body assert u'Hello, joe!' in r.body assert u'<title>' in r.body
def test_template(): with get(webify.wsgify(first_template.app), '/hello?name=joe') as r: assert u'200' in r.status assert u'joe' in r.body assert u'Hello, joe!' in r.body
def test_redirect(): with get(webify.wsgify(hello.app), '/hello_old/') as r: assert u'302' in r.status assert u'/hello/' in r.body
def test_unicode(): with get(webify.wsgify(simplest.app), '/wểrld?times=3') as r: assert u'200' in r.status assert u'wểrld' in r.body.decode('utf8') assert u'Hello, wểrld!' in r.body.decode('utf8') assert len(re.findall(u'wểrld', r.body.decode('utf8'))) == 3
def test_index(): with get(webify.wsgify(hello.app), '/') as r: assert u'200' in r.status assert u'Hello, world!' in r.body