import pytest import webview from .util import assert_js, run_test @pytest.fixture def window(): return webview.create_window( 'Main window', html='

Master window

' ) def test_bg_color(): window = webview.create_window('Main window', background_color='#0000FF') run_test(webview, window, bg_color) def test_load_html(window): run_test(webview, window, load_html) def test_load_url(window): run_test(webview, window, load_url) def test_evaluate_js(window): run_test(webview, window, evaluate_js) def test_js_bridge(): class Api1: def test1(self): return 1 window = webview.create_window( 'Multi-window js bridge test', html='

Master window

', js_api=Api1(), ) run_test(webview, window, js_bridge) def bg_color(window): child_window = webview.create_window( 'Window #2', html='

Test/h1>', background_color='#0000FF' ) assert child_window.uid != 'MainWindow' child_window.events.loaded.wait() child_window.destroy() def js_bridge(window): class Api2: def test2(self): return 2 api2 = Api2() child_window = webview.create_window( 'Window #2', html='

Test

', js_api=api2 ) assert child_window.uid != 'MainWindow' # child_window.load_html('

Secondary window

') assert_js(window, 'test1', 1) assert_js(child_window, 'test2', 2) child_window.destroy() def evaluate_js(window): child_window = webview.create_window('Window #2', 'https://pywebview.flowrl.com') assert child_window.uid != 'MainWindow' result1 = window.evaluate_js( """ document.body.style.backgroundColor = '#212121'; // comment function test() { return 2 + 5; } test(); """ ) assert result1 == 7 result2 = child_window.evaluate_js( """ document.body.style.backgroundColor = '#212121'; // comment function test() { return 2 + 2; } test(); """ ) assert result2 == 4 child_window.destroy() def load_html(window): child_window = webview.create_window( 'Window #2', html='

Secondary Window

' ) assert child_window != 'MainWindow' child_window.load_html('

Secondary Window #2

') child_window.events.loaded.wait() child_window.destroy() def load_url(window): child_window = webview.create_window('Window #2') assert child_window != 'MainWindow' child_window.load_url('https://pywebview.flowrl.com') child_window.events.loaded.wait() child_window.destroy()