1
0

10.aiohttp_multiple_session_impliment.py 1.6 KB

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