def tearDownClass(cls): # Set original loop and reinstall to tornado asyncio.set_event_loop(cls._orig_loop) AsyncIOMainLoop().clear_current() AsyncIOMainLoop().clear_instance() install_asyncio() reset()
def main(): # from tornado.ioloop import IOLoop # from tornado.platform.asyncio import AsyncIOMainLoop import asyncio from wdom.misc import install_asyncio install_asyncio() from wdom.server import start_server, get_app, stop_server # from wdom.server_aio import start_server, get_app, stop_server # from wdom.server_tornado import start_server, get_app, stop_server # from wdom.examples.markdown_simple import sample_page # from wdom.examples.rev_text import sample_page # from wdom.examples.data_binding import sample_page # from wdom.examples.todo import sample_page from wdom.examples.theming import sample_page # from wdom.themes import bootstrap3, mdl, skeleton, pure, semantic, kube, foundation, mui from wdom.themes import default page = sample_page(default) app = get_app(document=page) loop = asyncio.get_event_loop() server = start_server(app=app, loop=loop) try: loop.run_forever() except KeyboardInterrupt: stop_server(server) loop.close()
def setUpClass(cls): cls._orig_loop = asyncio.get_event_loop() # Need to use different loop for aiohttp after remote_browser tests # but I can't understand why...? asyncio.set_event_loop(asyncio.new_event_loop()) # When change default loop, tornado's ioloop needs to be reinstalled AsyncIOMainLoop().clear_current() AsyncIOMainLoop().clear_instance() install_asyncio() reset()
def start_server(app: Optional[module.Application] = None, browser: Optional[str] = None, address: Optional[str] = None, check_time: Optional[int] = 500, **kwargs): """Start web server.""" # Add application's static files directory from wdom.document import get_document add_static_path('_static', static_dir) doc = get_document() if os.path.exists(doc.tempdir): add_static_path('tmp', doc.tempdir, no_watch=True) if doc._autoreload or config.autoreload or config.debug: install_asyncio() autoreload.start(check_time=check_time) global _server _server = module.start_server(**kwargs) logger.info('Start server on {0}:{1:d}'.format( _server.address, _server.port)) if config.open_browser: open_browser('http://{}:{}/'.format(_server.address, _server.port), browser or config.browser) return _server
from wdom.server import get_app, start_server, stop_server from wdom.document import get_document from wdom.tag import Div, H1, Input class MyElement(Div): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.h1 = H1(parent=self) self.h1.textContent = 'Hello, WDOM' self.input = Input(parent=self) self.input.addEventListener('input', self.update) def update(self, event): self.h1.textContent = event.target.value if __name__ == '__main__': install_asyncio() # only when using tornado document = get_document() document.body.appendChild(MyElement()) app = get_app(document) loop = asyncio.get_event_loop() server = start_server(app, port=8888, loop=loop) try: loop.run_forever() except KeyboardInterrupt: stop_server(server)
def setUpModule(): install_asyncio()
def setUpModule(): install_asyncio() start_remote_browser()
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import asyncio from wdom.misc import install_asyncio from wdom.document import get_document from wdom.server import get_app, start_server, stop_server from wdom.tag import Button if __name__ == '__main__': install_asyncio() document = get_document() # Add <link>-tag sourcing bootstrap.min.css on <head> document.add_cssfile('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css') # Add <script>-tag sourcing jquery and bootstrap.min.js to <body> document.add_jsfile('https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js') document.add_jsfile('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js') # Add bootstrap button element document.body.appendChild(Button('click', class_='btn btn-primary')) app = get_app(document) loop = asyncio.get_event_loop() server = start_server(app, port=8888, loop=loop) try: loop.run_forever() except KeyboardInterrupt: stop_server(server)
def tearDownModule(): close_webdriver() CURDIR = path.dirname(path.abspath(__file__)) src_base = ''' import sys import asyncio from wdom.misc import install_asyncio from wdom.tag import H1 from wdom.document import get_document from wdom import server install_asyncio() loop = asyncio.get_event_loop() doc = get_document() doc.body.appendChild(H1('FIRST', id='h1')) doc.add_cssfile('testdir/test.css') server.add_static_path('testdir', '{curdir}/testdir') server.start_server(loop=loop, check_time=10) loop.run_forever() '''.format(curdir=CURDIR) css_path = path.join(CURDIR, 'testdir/test.css') src_css = ''' h1 {color: #000000;} ''' src_css_post = ''' h1 {color: #ff0000;}