import os import subprocess from percy import percy_snapshot from selenium.webdriver import Chrome from selenium.webdriver.common.by import By import util from pywebio.platform import path_deploy from pywebio.utils import * here_dir = os.path.dirname(os.path.abspath(__file__)) demos_dir = os.path.join(here_dir, '..', 'demos') def test(server_proc: subprocess.Popen, browser: Chrome): time.sleep(10) percy_snapshot(browser, name='path_deploy_1') browser.get('http://localhost:8080/') time.sleep(2) page_html = browser.find_element(By.TAG_NAME, 'body').get_attribute('innerHTML') print(page_html) for f in ['bmi', 'bokeh_app', 'chat_room', 'input_usage', 'output_usage', 'set_env_demo']: assert f in page_html, f'{f} not in page' time.sleep(2) def start_test_server(): os.remove(os.path.join(demos_dir, 'index.py')) path_deploy(demos_dir, port=8080, host='127.0.0.1', cdn=False) if __name__ == '__main__': util.run_test(start_test_server, test, address='http://localhost:8080/bokeh_app')