def run(): # pragma: no cover engine = sqlalchemy.create_engine("sqlite:///morepath_sqlalchemy.db") Session.configure(bind=engine) Base.metadata.create_all(engine) morepath.autoscan() morepath.run(App())
def run(): # pragma: no cover engine = sqlalchemy.create_engine('sqlite:///morepath_sqlalchemy.db') Session.configure(bind=engine) Base.metadata.create_all(engine) morepath.autoscan() morepath.run(App())
def main(): engine = sqlalchemy.create_engine('sqlite:///morepath_sqlalchemy.db') Session.configure(bind=engine) Base.metadata.create_all(engine) Base.metadata.bind = engine morepath.autosetup() morepath.run(app)
def run(self, *args, **kw): """Wrapper around morepath.run to catch SystemExit. :return: the exit code.""" import morepath with pytest.raises(SystemExit) as ex: morepath.run(*args, **kw) return ex.value.code
def run(): from sys import argv, exit, stderr if len(argv) < 2 or argv[1] != 'run': stderr.write(f'usage: {argv[0]} run [port]\n') exit(1) try: port = int(argv[2]) except IndexError: port = 8080 morepath.run(application, ignore_cli=True, port=port)
def run(): parser = argparse.ArgumentParser() parser.add_argument('-s', '--settings', default='settings.yml') args = parser.parse_args() with open(args.settings) as cf: settings = yaml.load(cf) application = create_app(App, settings) # start app morepath.run(application)
def test_run_actual(capsys): from threading import Thread def query(url, completion_callback, response): try: from urllib import urlopen except ImportError: from urllib.request import urlopen try: response.append(urlopen(url).read()) except Exception as ex: response.append(ex) finally: completion_callback() response = [] def callback(server): thread = Thread( target=query, args=( "http://127.0.0.1:{}".format(server.server_port), server.shutdown, response, ), ) thread.daemon = True thread.start() with pytest.raises(SystemExit) as ex: morepath.run( basic.app(), port=0, prog="script-name", callback=callback, ignore_cli=True, ) assert ex.value.code == 0 assert response == [b"The root: ROOT"] out, err = capsys.readouterr() assert re.match( """\ Running <morepath.tests.fixtures.basic.app object at 0x[0-9a-f]+> Listening on http://127.0.0.1:\\d+ Press Ctrl-C to stop... """, out, ) assert re.match(r'127.0.0.1 - - \[.*?\] "GET / HTTP/1.[01]" 200 14', err)
def start_hub(): if len(sys.argv) == 1: print "%s [config.yml]" % sys.argv[0] sys.exit(1) sys.path.append(os.getcwd()) config = yaml.load(open(sys.argv[1]).read()) @App.setting_section(section='config') def config_section(): return config morepath.run(App(config), ignore_cli=True)
def start_server(classifier, endpoint, auth): if endpoint: post = io.create_poster(endpoint, auth) def forward(payload): post(payload) io.stderr('Message succesfully sent to: %s\n%s' % (endpoint, payload)) else: forward = io.stdout morepath.run(App(classifier, forward), ignore_cli=True)
def test_run_hint_on_eaddrinuse(mockserver, capsys): """Fail not only gracefully but also helpfully on EADDRINUSE. In this case having a second server (mockserver) listening on the same port as a first server triggers the socket error. """ def with_existing(first_server): used_port = first_server.server_port # setup a second server on exactly the same port mockserver.set_argv(['--port', str(used_port)]) assert mockserver.run(basic.app()) == errno.EADDRINUSE out, err = capsys.readouterr() # The wording of the error message is system-specific. rex = """\ script-name: .*: 127.0.0.1:{} Use '--port PORT' to specify a different port. """.format(used_port) assert re.match(rex, err) assert out == '' # If ignore_cli is True, we don't get the helpful hint assert mockserver.run( basic.app(), port=used_port, ignore_cli=True ) == errno.EADDRINUSE out, err = capsys.readouterr() rex = 'script-name: .*: 127.0.0.1:{}\n'.format(used_port) assert re.match(rex, err) assert out == '' # setup a first server with pytest.raises(SystemExit) as ex: morepath.run( basic.app(), port=0, prog='first-server', callback=with_existing, ignore_cli=True) assert ex.value.code == 0
def run(): # pragma: no cover morepath.autoscan() index = FileApp('static/index.html') static = DirectoryApp('static') app = App() @webob.dec.wsgify def morepath_with_static_absorb(request): popped = request.path_info_pop() if popped == 'api': return request.get_response(app) elif popped == 'static': return request.get_response(static) else: return request.get_response(index) morepath.run(morepath_with_static_absorb)
def test_run_actual(capsys): from threading import Thread def query(url, completion_callback, response): try: from urllib import urlopen except ImportError: from urllib.request import urlopen try: response.append(urlopen(url).read()) except Exception as ex: response.append(ex) finally: completion_callback() response = [] def callback(server): thread = Thread(target=query, args=( 'http://127.0.0.1:{}'.format(server.server_port), server.shutdown, response)) thread.daemon = True thread.start() with pytest.raises(SystemExit) as ex: morepath.run( basic.app(), port=0, prog='script-name', callback=callback, ignore_cli=True) assert ex.value.code == 0 assert response == [b'The root: ROOT'] out, err = capsys.readouterr() assert re.match("""\ Running <morepath.tests.fixtures.basic.app object at 0x[0-9a-f]+> Listening on http://127.0.0.1:\\d+ Press Ctrl-C to stop... """, out) assert re.match(r'127.0.0.1 - - \[.*?\] "GET / HTTP/1.[01]" 200 14', err)
def run(): # pragma: no cover # This is super-hacky, but whatever - this was always intended to be a # temporary solution anyway if len(argv) > 1: # We clean the config filename off so as not to confuse morepath config_settings(argv.pop()) else: print('Need a list name (should be in form-data/)') exit(1) engine = sqlalchemy.create_engine('sqlite:///sf_app.db') Session.configure(bind=engine) Base.metadata.create_all(engine) morepath.autoscan() # Not entirely clear if I need this morepath.commit(App) morepath.run(App())
def run(): from sys import argv, exit, stderr usage = f'usage: {argv[0]} run|routes [port]\n' if len(argv) < 2: stderr.write(usage) exit(1) if argv[1] == 'run': try: port=int(argv[2]) except IndexError: port=8080 morepath.run(application, ignore_cli=True, port=port) elif argv[1] == 'routes': import dectate for app in application.commit(): for view in dectate.query_app(app, 'view'): print(view[0].key_dict()) else: stderr.write(usage) exit(1)
def run(): # pragma: no cover morepath.autoscan() index = FileApp('static/index.html') static = DirectoryApp('static') app = App() @webob.dec.wsgify def morepath_with_static(request): if request.path_info_peek() == '': return request.get_response(index) popped = request.path_info_pop() if popped == 'api': return request.get_response(app) elif popped == 'static': return request.get_response(static) raise HTTPNotFound() morepath.run(morepath_with_static)
def run(): directive_logger = logging.getLogger('morepath.directive') directive_logger.addHandler(logging.StreamHandler()) directive_logger.setLevel(logging.DEBUG) with open('settings.yml') as config: settings_dict = yaml.load(config) App.init_settings(settings_dict) morepath.autoscan() morepath.commit(App) app = App() setup_db(app) if os.getenv('RUN_ENV') == 'dev': morepath.run(app, host='0.0.0.0', port='80') else: waitress_logger = logging.getLogger('waitress') waitress_logger.setLevel(logging.INFO) waitress.serve(app, listen="*:80")
def run(): morepath.run(App())
def run(): # pragma: no cover App.setting("storage", "path")(default_storage_directory) morepath.autoscan() morepath.run(App())
def run(): morepath.autoscan() morepath.run(App())
def run(): # pragma: no cover App.setting('storage', 'path')(default_storage_directory) morepath.autoscan() morepath.run(App())
def main(): morepath.autosetup() morepath.run(App())
def run(): from ekklesia_portal.app import make_wsgi_app wsgi_app = make_wsgi_app() morepath.run(wsgi_app)
def run(): # pragma: no cover morepath.autoscan() morepath.run(App())
def main(): morepath.autosetup() morepath.run(app())
import morepath class App(morepath.App): pass @App.path(path='') class Root(object): pass @App.view(model=Root) def hello_world(self, request): return "Hello world!" if __name__ == '__main__': config = morepath.setup() config.scan() config.commit() morepath.run(App())
def run(app, settings, host='127.0.0.1', port=5000, ignore_cli=True): application = create_app(app, settings) morepath.run(application, host=host, port=port, ignore_cli=ignore_cli)