10.aiohttp_multiple_session_impliment.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import subprocess
  2. import time
  3. from aiohttp import web
  4. from selenium.webdriver import Chrome
  5. import pywebio
  6. import template
  7. import util
  8. from pywebio import STATIC_PATH
  9. from pywebio.input import *
  10. from pywebio.platform.aiohttp import static_routes, webio_handler
  11. from pywebio.utils import to_coroutine, run_as_function
  12. def target():
  13. template.basic_output()
  14. template.background_output()
  15. run_as_function(template.basic_input())
  16. actions(buttons=['Continue'])
  17. template.background_input()
  18. async def async_target():
  19. template.basic_output()
  20. await template.coro_background_output()
  21. await to_coroutine(template.basic_input())
  22. await actions(buttons=['Continue'])
  23. await template.coro_background_input()
  24. def test(server_proc: subprocess.Popen, browser: Chrome):
  25. template.test_output(browser)
  26. time.sleep(1)
  27. template.test_input(browser)
  28. time.sleep(1)
  29. template.save_output(browser, '10.aiohttp_multiple_session_impliment_p1.html')
  30. browser.get('http://localhost:8080/io2?_pywebio_debug=1')
  31. template.test_output(browser)
  32. time.sleep(1)
  33. template.test_input(browser)
  34. time.sleep(1)
  35. template.save_output(browser, '10.aiohttp_multiple_session_impliment_p2.html')
  36. def start_test_server():
  37. pywebio.enable_debug()
  38. app = web.Application()
  39. app.add_routes([web.get('/io', webio_handler(target, cdn=False))])
  40. app.add_routes([web.get('/io2', webio_handler(async_target, cdn=False))])
  41. app.add_routes(static_routes())
  42. web.run_app(app, host='127.0.0.1', port=8080)
  43. if __name__ == '__main__':
  44. util.run_test(start_test_server, test, 'http://localhost:8080/io?_pywebio_debug=1')