Skip to content

Commit 607c371

Browse files
committed
update django backend test
1 parent 3a3355b commit 607c371

File tree

2 files changed

+44
-100
lines changed

2 files changed

+44
-100
lines changed

test/14.django_multiple_session_impliment.py

Lines changed: 6 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -35,76 +35,20 @@ def test(server_proc: subprocess.Popen, browser: Chrome):
3535
time.sleep(1)
3636
template.save_output(browser, '14.flask_multiple_session_impliment_p1.html')
3737

38-
browser.get('http://localhost:8080/app2?_pywebio_debug=1&_pywebio_http_pull_interval=400')
39-
template.test_output(browser)
38+
browser.get('http://localhost:8080/?app=p2&_pywebio_debug=1')
39+
template.test_output(browser, action_delay=1)
4040
time.sleep(1)
41-
template.test_input(browser)
41+
template.test_input(browser, action_delay=1)
4242

4343
time.sleep(1)
4444
template.save_output(browser, '14.flask_multiple_session_impliment_p2.html')
4545

4646

47-
urlpatterns = []
48-
49-
5047
def start_test_server():
51-
global urlpatterns
52-
48+
from pywebio.platform.django import start_server
5349
pywebio.enable_debug()
54-
from functools import partial
55-
from pywebio.platform.django import webio_view
56-
from django.conf import settings
57-
from django.core.wsgi import get_wsgi_application
58-
from django.urls import path
59-
from django.utils.crypto import get_random_string
60-
from django.views.static import serve
61-
from pywebio import STATIC_PATH
62-
63-
django_options = dict(
64-
DEBUG=True,
65-
ALLOWED_HOSTS=["*"], # Disable host header validation
66-
ROOT_URLCONF=__name__, # Make this module the urlconf
67-
SECRET_KEY=get_random_string(10), # We aren't using any security features but Django requires this setting
68-
)
69-
django_options.setdefault('LOGGING', {
70-
'version': 1,
71-
'disable_existing_loggers': False,
72-
'formatters': {
73-
'simple': {
74-
'format': '[%(asctime)s] %(message)s'
75-
},
76-
},
77-
'handlers': {
78-
'console': {
79-
'class': 'logging.StreamHandler',
80-
'formatter': 'simple'
81-
},
82-
},
83-
'loggers': {
84-
'django.server': {
85-
'level': 'INFO',
86-
'handlers': ['console'],
87-
},
88-
},
89-
})
90-
settings.configure(**django_options)
91-
92-
urlpatterns = [
93-
path(r"app", webio_view(target, cdn=False)),
94-
path(r"app2", webio_view(async_target, cdn=False)),
95-
path(r'', partial(serve, path='index.html'), {'document_root': STATIC_PATH}),
96-
path(r'<path:path>', serve, {'document_root': STATIC_PATH}),
97-
]
98-
99-
app = get_wsgi_application() # load app
100-
101-
import tornado.wsgi
102-
container = tornado.wsgi.WSGIContainer(app)
103-
http_server = tornado.httpserver.HTTPServer(container)
104-
http_server.listen(8080, address='127.0.0.1')
105-
tornado.ioloop.IOLoop.current().start()
50+
start_server({'p1': target, 'p2': async_target}, port=8080, host='127.0.0.1', cdn=False)
10651

10752

10853
if __name__ == '__main__':
109-
util.run_test(start_test_server, test,
110-
address='http://localhost:8080/app?_pywebio_debug=1&_pywebio_http_pull_interval=400')
54+
util.run_test(start_test_server, test, address='http://localhost:8080/?app=p1')

test/template.py

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -336,50 +336,50 @@ async def background():
336336
return run_async(background())
337337

338338

339-
def test_output(browser: Chrome, enable_percy=False):
339+
def test_output(browser: Chrome, enable_percy=False, action_delay=0.5):
340340
"""测试输出::
341341
342342
run template.basic_output()
343343
template.background_output() # 或者 await template.coro_background_output()
344344
hold()
345345
346346
"""
347-
time.sleep(1) # 等待输出完毕
347+
time.sleep(action_delay * 2) # 等待输出完毕
348348

349349
# get focus
350350
browser.find_element_by_tag_name('body').click()
351-
time.sleep(1)
351+
time.sleep(action_delay * 2)
352352

353353
browser.execute_script('$("html, body").scrollTop( $(document).height()+100);')
354-
time.sleep(0.5)
354+
time.sleep(action_delay)
355355
enable_percy and percySnapshot(browser, name='begin output')
356356

357357
tab_btns = browser.find_elements_by_css_selector('#pywebio-scope-table_cell_buttons button')
358358
for btn in tab_btns:
359-
time.sleep(0.5)
359+
time.sleep(action_delay)
360360
browser.execute_script("arguments[0].click();", btn)
361361

362362
btns = browser.find_elements_by_css_selector('#pywebio-scope-put_buttons button')
363363
for btn in btns:
364-
time.sleep(0.5)
364+
time.sleep(action_delay)
365365
browser.execute_script("arguments[0].click();", btn)
366366

367367
# 滚动窗口
368368
btns = browser.find_elements_by_css_selector('#pywebio-scope-scroll_basis_btns button')
369369
for btn in btns:
370-
time.sleep(1)
370+
time.sleep(action_delay * 2)
371371
browser.execute_script("arguments[0].click();", btn)
372372

373-
time.sleep(1)
373+
time.sleep(action_delay * 2)
374374
browser.execute_script('$("html, body").scrollTop( $(document).height()+100);')
375-
time.sleep(0.5)
375+
time.sleep(action_delay)
376376
enable_percy and percySnapshot(browser, name='basic output')
377377

378378
# popup
379379
btn = browser.find_element_by_css_selector('#pywebio-scope-popup_btn button')
380380
browser.execute_script("arguments[0].click();", btn)
381381

382-
time.sleep(1)
382+
time.sleep(action_delay * 2)
383383
enable_percy and percySnapshot(browser, name='popup')
384384

385385
browser.execute_script("$('.modal').modal('hide');")
@@ -595,7 +595,7 @@ async def background():
595595
put_markdown(f'`front: {repr(res)}`')
596596

597597

598-
def test_input(browser: Chrome, enable_percy=False):
598+
def test_input(browser: Chrome, enable_percy=False, action_delay=0.5):
599599
"""测试输入::
600600
601601
run template.basic_input()
@@ -606,86 +606,86 @@ def test_input(browser: Chrome, enable_percy=False):
606606
browser.find_element_by_css_selector('#input-container input').send_keys("22")
607607
browser.find_element_by_tag_name('form').submit()
608608

609-
time.sleep(0.5)
609+
time.sleep(action_delay)
610610
browser.find_element_by_css_selector('#input-container input').send_keys("secret")
611611
browser.find_element_by_tag_name('form').submit()
612612

613-
time.sleep(0.5)
613+
time.sleep(action_delay)
614614
browser.find_element_by_tag_name('form').submit()
615615

616616
# checkbox
617-
time.sleep(0.5)
617+
time.sleep(action_delay)
618618
browser.execute_script("arguments[0].click();", browser.find_element_by_css_selector('#input-container input'))
619619
browser.find_element_by_tag_name('form').submit()
620620

621621
# Text Area
622-
time.sleep(0.5)
622+
time.sleep(action_delay)
623623
browser.find_element_by_css_selector('#input-container textarea').send_keys(" ".join(str(i) for i in range(20)))
624624
browser.find_element_by_tag_name('form').submit()
625625

626626
# file
627-
time.sleep(0.5)
627+
time.sleep(action_delay)
628628
img_path = path.join(here_dir, 'assets', 'img.png')
629629
browser.find_element_by_css_selector('#input-container input').send_keys(img_path)
630630
browser.find_element_by_tag_name('form').submit()
631631

632632
# text
633-
time.sleep(0.5)
633+
time.sleep(action_delay)
634634
browser.find_element_by_css_selector('#input-container input').send_keys("text")
635635
browser.find_element_by_tag_name('form').submit()
636636

637637
# 表单取消
638-
time.sleep(0.5)
638+
time.sleep(action_delay)
639639
browser.execute_script("arguments[0].click();", browser.find_element_by_css_selector('.pywebio_cancel_btn'))
640640

641641
# valid func, age in [10, 60]
642-
time.sleep(0.5)
642+
time.sleep(action_delay)
643643
browser.find_element_by_css_selector('#input-container input').send_keys("1")
644644
browser.find_element_by_tag_name('form').submit()
645-
time.sleep(0.5)
645+
time.sleep(action_delay)
646646
browser.find_element_by_css_selector('#input-container input').clear()
647647
browser.find_element_by_css_selector('#input-container input').send_keys("90")
648648
browser.find_element_by_tag_name('form').submit()
649-
time.sleep(0.5)
649+
time.sleep(action_delay)
650650
browser.find_element_by_css_selector('#input-container input').clear()
651651
browser.find_element_by_css_selector('#input-container input').send_keys("23")
652652
browser.find_element_by_tag_name('form').submit()
653653

654654
# code
655-
time.sleep(0.5)
655+
time.sleep(action_delay)
656656
# browser.find_element_by_css_selector('textarea').send_keys(" ".join(str(i) for i in range(20)))
657657
browser.find_element_by_tag_name('form').submit()
658658

659659
# Cancelable from group
660-
time.sleep(0.5)
660+
time.sleep(action_delay)
661661
browser.find_element_by_name('name').send_keys("name")
662-
time.sleep(1)
662+
time.sleep(action_delay * 2)
663663
browser.find_element_by_name('age').send_keys("90")
664664
browser.find_element_by_tag_name('form').submit()
665665
browser.execute_script('$("html, body").scrollTop( $(document).height()+100);')
666-
time.sleep(0.5)
666+
time.sleep(action_delay)
667667
enable_percy and percySnapshot(browser, name='input group invalid')
668668

669-
time.sleep(0.5)
669+
time.sleep(action_delay)
670670
browser.find_element_by_name('age').clear()
671671
browser.find_element_by_name('age').send_keys("23")
672672
browser.find_element_by_tag_name('form').submit()
673673

674674
# callback actions
675-
time.sleep(0.5)
675+
time.sleep(action_delay)
676676
browser.execute_script("arguments[0].click();", browser.find_element_by_css_selector('form button[type="button"]'))
677-
time.sleep(0.4)
677+
time.sleep(action_delay)
678678

679679
# input action
680-
time.sleep(0.5)
680+
time.sleep(action_delay)
681681
browser.execute_script("arguments[0].click();", browser.find_element_by_css_selector('form button[type="button"]'))
682-
time.sleep(0.4)
682+
time.sleep(action_delay)
683683
browser.find_element_by_tag_name('form').submit()
684684

685685
# Input group
686-
time.sleep(0.5)
686+
time.sleep(action_delay)
687687
browser.execute_script('$("html, body").scrollTop( $(document).height()+100);')
688-
time.sleep(0.5)
688+
time.sleep(action_delay)
689689
enable_percy and percySnapshot(browser, name='input group all')
690690
browser.find_element_by_name('text').send_keys("name")
691691
browser.find_element_by_name('number').send_keys("20")
@@ -702,27 +702,27 @@ def test_input(browser: Chrome, enable_percy=False):
702702
browser.find_element_by_name('file_upload').send_keys(path.join(here_dir, 'assets', 'helloworld.txt'))
703703

704704
browser.execute_script("$('form button').eq(1).click()")
705-
time.sleep(1)
705+
time.sleep(action_delay * 2)
706706
browser.execute_script('$("html, body").scrollTop( $(document).height()+100);')
707-
time.sleep(0.5)
707+
time.sleep(action_delay)
708708
enable_percy and percySnapshot(browser, name='input group all invalid')
709709

710710
browser.find_element_by_name('password').clear()
711711
browser.find_element_by_name('password').send_keys("123")
712712
browser.execute_script("$('form button[type=\"submit\"]').eq(1).click()")
713-
time.sleep(1)
713+
time.sleep(action_delay * 2)
714714
browser.execute_script('$("html, body").scrollTop( $(document).height()+100);')
715-
time.sleep(1)
715+
time.sleep(action_delay * 2)
716716
enable_percy and percySnapshot(browser, name='input group all submit')
717717

718718
browser.find_element_by_css_selector('form').submit()
719719

720720
# background
721-
time.sleep(3)
721+
time.sleep(action_delay * 6)
722722
get_visible_form(browser).find_element_by_css_selector('#input-container input').send_keys("background")
723723
get_visible_form(browser).find_element_by_tag_name('form').submit()
724724
# front
725-
time.sleep(0.5)
725+
time.sleep(action_delay * 2)
726726
get_visible_form(browser).find_element_by_css_selector('#input-container input').send_keys("front")
727727
get_visible_form(browser).find_element_by_tag_name('form').submit()
728728

0 commit comments

Comments
 (0)