Example #1
0
 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()
Example #2
0
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()
Example #3
0
 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()
Example #4
0
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
Example #5
0
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)
Example #6
0
def setUpModule():
    install_asyncio()
Example #7
0
def setUpModule():
    install_asyncio()
    start_remote_browser()
Example #8
0
#!/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)
Example #9
0
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;}