#!/usr/bin/env python
"""
Simple test server/environment for WSGI development
"""
import werkzeug
# app import
import svv.wsgi
import svv.database
import svv.application
import optparse, logging
if __name__ == '__main__' :
parser = optparse.OptionParser()
parser.add_option('-q', '--quiet', action='store_true', help='More output')
parser.add_option('-v', '--verbose', action='store_true', help='More output')
parser.add_option('-D', '--debug', action='store_true', help="Even more output (SQL queries)")
parser.add_option('-p', '--port', type='int', help='Local port to run on', default=8080, metavar='PORT')
parser.add_option('-B', '--bind', help="Local address to listen on", default='localhost', metavar='HOST')
parser.add_option('-d', '--database', help="Database connection URI", metavar='URL')
parser.add_option( '--init-database', action='store_true', help="Initialize database (CREATE)")
(options, args) = parser.parse_args()
# defaults
level = logging.INFO
sql_echo = False
if options.quiet :
level = logging.WARN
if options.verbose :
level = logging.DEBUG
if options.debug :
level = logging.DEBUG
sql_echo = True
bind = options.bind
port = options.port
assert not args
logging.basicConfig(format="[%(levelname)5s] %(funcName)25s : %(message)s", level=level)
if sql_echo :
# echo SQL queries
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
# app state
application = svv.application.Application(
options.database,
)
# init?
if options.init_database :
application.create_tables()
# frontend
wsgiapp = svv.wsgi.WSGIApp(
application
)
# run
werkzeug.run_simple(bind, port, wsgiapp, use_reloader=True, use_debugger=True,
static_files = {
# static resources mounted off app /static
'/static': 'static/',
},
)