1
0

7.multiple_session_impliment.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import subprocess
  2. import time
  3. from selenium.webdriver import Chrome
  4. import pywebio
  5. import template
  6. import util
  7. from pywebio.input import *
  8. from pywebio.utils import to_coroutine, run_as_function
  9. def target():
  10. template.basic_output()
  11. template.background_output()
  12. run_as_function(template.basic_input())
  13. actions(buttons=['Continue'])
  14. template.background_input()
  15. async def async_target():
  16. template.basic_output()
  17. await template.coro_background_output()
  18. await to_coroutine(template.basic_input())
  19. await actions(buttons=['Continue'])
  20. await template.coro_background_input()
  21. def test(server_proc: subprocess.Popen, browser: Chrome):
  22. template.test_output(browser)
  23. time.sleep(1)
  24. template.test_input(browser)
  25. time.sleep(1)
  26. template.save_output(browser, '7.multiple_session_impliment_p1.html')
  27. browser.get('http://localhost:8080/io2?_pywebio_debug=1')
  28. template.test_output(browser)
  29. time.sleep(1)
  30. template.test_input(browser)
  31. time.sleep(1)
  32. template.save_output(browser, '7.multiple_session_impliment_p2.html')
  33. def start_test_server():
  34. pywebio.enable_debug()
  35. import tornado.ioloop
  36. import tornado.web
  37. from pywebio.platform.tornado import webio_handler
  38. from pywebio import STATIC_PATH
  39. application = tornado.web.Application([
  40. (r"/", webio_handler(async_target, cdn=False)),
  41. (r"/io2", webio_handler(target, cdn=False)),
  42. (r"/(.*)", tornado.web.StaticFileHandler,
  43. {"path": STATIC_PATH, 'default_filename': 'index.html'})
  44. ])
  45. application.listen(port=8080, address='127.0.0.1')
  46. tornado.ioloop.IOLoop.current().start()
  47. if __name__ == '__main__':
  48. util.run_test(start_test_server, test)