Skip to content

Commit 0d0af58

Browse files
committed
upgrade percy to fix test CI
1 parent 51ece4a commit 0d0af58

File tree

11 files changed

+114
-101
lines changed

11 files changed

+114
-101
lines changed

.github/workflows/test.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,12 @@ jobs:
2828
run: |
2929
python -m pip install --upgrade pip
3030
pip install -r requirements.txt
31-
- name: Install env
32-
run: echo "PERCY_TOKEN=${{ secrets.PERCY_TOKEN }}" >> $GITHUB_ENV
31+
- run: npm install --save-dev @percy/cli
3332
- name: Percy Test
34-
uses: percy/exec[email protected]
35-
with:
36-
working-directory: ./test
37-
command: "./run_all.sh"
33+
run: npx percy exec -- bash ./run_all.sh
34+
working-directory: ./test
35+
env:
36+
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
3837
- name: Upload test output
3938
uses: actions/upload-artifact@v1
4039
if: failure()

pywebio/platform/tornado.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ def start_server(applications: Union[Callable[[], None], List[Callable[[], None]
276276

277277
page.MAX_PAYLOAD_SIZE = max_payload_size = parse_file_size(max_payload_size)
278278

279-
# covered `os.environ.get()` func with `bool()` to pervent type check error
279+
# covered `os.environ.get()` func with `bool()` to prevent type check error
280280
debug = Session.debug = bool(os.environ.get('PYWEBIO_DEBUG', debug))
281281

282282
# Since some cloud server may close idle connections (such as heroku),

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ plotly
1616
Pillow
1717

1818
# test requirements
19-
selenium==3.*
20-
percy-python-selenium==0.1.3
19+
selenium
20+
percy-selenium
2121
coverage
2222

2323
# doc building requirements

test/.percy.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1-
version: 1
1+
version: 2
22
snapshot:
3-
widths: [1000]
3+
widths:
4+
- 1000
5+
discovery:
6+
disable-cache: true

test/11.charts.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from cutecharts.charts import Line
77
from cutecharts.charts import Pie
88
from cutecharts.charts import Radar
9-
from percy import percySnapshot
9+
from percy import percy_snapshot
1010
from selenium.webdriver import Chrome
1111

1212
import pywebio
@@ -376,7 +376,7 @@ def target():
376376

377377
def test(server_proc: subprocess.Popen, browser: Chrome):
378378
time.sleep(8)
379-
percySnapshot(browser, name='bokeh')
379+
percy_snapshot(browser, name='bokeh')
380380

381381

382382
def start_test_server():

test/13.misc.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
import subprocess
33
from functools import partial
44

5-
from percy import percySnapshot
5+
from percy import percy_snapshot
66
from selenium.webdriver import Chrome
7+
from selenium.webdriver.common.by import By
78

89
import pywebio
910
import template
@@ -208,7 +209,7 @@ def test(server_proc: subprocess.Popen, browser: Chrome):
208209

209210
# browser.get('http://localhost:8080/?app=thread')
210211
browser.execute_script("arguments[0].click();",
211-
browser.find_element_by_css_selector('#pywebio-scope-go_app button'))
212+
browser.find_element(By.CSS_SELECTOR, '#pywebio-scope-go_app button'))
212213
time.sleep(2)
213214

214215
thread_out = template.save_output(browser)[-1]
@@ -220,10 +221,10 @@ def test(server_proc: subprocess.Popen, browser: Chrome):
220221
time.sleep(6)
221222

222223
browser.execute_script("arguments[0].click();",
223-
browser.find_element_by_css_selector('#pywebio-scope-error button'))
224+
browser.find_element(By.CSS_SELECTOR, '#pywebio-scope-error button'))
224225
browser.execute_script("$('button[type=submit]').click();")
225226
time.sleep(2)
226-
percySnapshot(browser, name='misc')
227+
percy_snapshot(browser, name='misc')
227228

228229

229230
def start_test_server():

test/16.path_deploy.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import os
22
import subprocess
33

4-
from percy import percySnapshot
4+
from percy import percy_snapshot
55
from selenium.webdriver import Chrome
6+
from selenium.webdriver.common.by import By
67

78
import util
89
from pywebio.platform import path_deploy
@@ -14,10 +15,10 @@
1415

1516
def test(server_proc: subprocess.Popen, browser: Chrome):
1617
time.sleep(10)
17-
percySnapshot(browser, name='path_deploy_1')
18+
percy_snapshot(browser, name='path_deploy_1')
1819
browser.get('http://localhost:8080/')
1920
time.sleep(2)
20-
page_html = browser.find_element_by_tag_name('body').get_attribute('innerHTML')
21+
page_html = browser.find_element(By.TAG_NAME, 'body').get_attribute('innerHTML')
2122
print(page_html)
2223
for f in ['bmi', 'bokeh_app', 'chat_room', 'input_usage', 'output_usage', 'set_env_demo']:
2324
assert f in page_html, f'{f} not in page'

test/18.pin_test.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import subprocess
22
import time
33

4-
from percy import percySnapshot
4+
from percy import percy_snapshot
55
from selenium.webdriver import Chrome
6+
from selenium.webdriver.common.by import By
67
from selenium.webdriver.common.action_chains import ActionChains
78
from selenium.webdriver.support.ui import Select
89

@@ -67,25 +68,25 @@ async def coro_target():
6768

6869

6970
def test_one_page(browser: Chrome):
70-
browser.find_element_by_css_selector('[name=input]').send_keys("1")
71+
browser.find_element(By.CSS_SELECTOR, '[name=input]').send_keys("1")
7172
time.sleep(0.5)
72-
browser.find_element_by_css_selector('[name=textarea]').send_keys("2")
73+
browser.find_element(By.CSS_SELECTOR, '[name=textarea]').send_keys("2")
7374
time.sleep(0.5)
74-
Select(browser.find_element_by_css_selector('[name=select]')).select_by_visible_text('B')
75+
Select(browser.find_element(By.CSS_SELECTOR, '[name=select]')).select_by_visible_text('B')
7576
time.sleep(0.5)
76-
Select(browser.find_element_by_css_selector('[name=select_multiple]')).select_by_visible_text('A')
77+
Select(browser.find_element(By.CSS_SELECTOR, '[name=select_multiple]')).select_by_visible_text('A')
7778
time.sleep(0.5)
78-
browser.find_element_by_css_selector('[name=checkbox]').click()
79+
browser.find_element(By.CSS_SELECTOR, '[name=checkbox]').click()
7980
time.sleep(0.5)
80-
browser.find_element_by_css_selector('[name=checkbox_inline]').click()
81+
browser.find_element(By.CSS_SELECTOR, '[name=checkbox_inline]').click()
8182
time.sleep(0.5)
82-
browser.find_element_by_css_selector('[name=radio]').click()
83+
browser.find_element(By.CSS_SELECTOR, '[name=radio]').click()
8384
time.sleep(0.5)
84-
browser.find_element_by_css_selector('[name=radio_inline]').click()
85+
browser.find_element(By.CSS_SELECTOR, '[name=radio_inline]').click()
8586
time.sleep(0.5)
86-
browser.find_element_by_css_selector('button[type=\"submit\"]').click()
87+
browser.find_element(By.CSS_SELECTOR, 'button[type=\"submit\"]').click()
8788
time.sleep(0.5)
88-
codeMirror = browser.find_element_by_css_selector(".CodeMirror pre")
89+
codeMirror = browser.find_element(By.CSS_SELECTOR, ".CodeMirror pre")
8990
action_chains = ActionChains(browser)
9091
action_chains.move_to_element(codeMirror).click(codeMirror).send_keys('3').perform()
9192

@@ -95,14 +96,14 @@ def test(server_proc: subprocess.Popen, browser: Chrome):
9596
time.sleep(2)
9697
test_one_page(browser)
9798
time.sleep(2)
98-
percySnapshot(browser, name='pin')
99-
assert PASSED_TEXT in browser.find_element_by_id('markdown-body').get_attribute('innerHTML')
99+
percy_snapshot(browser, name='pin')
100+
assert PASSED_TEXT in browser.find_element(By.ID, 'markdown-body').get_attribute('innerHTML')
100101

101102
browser.get('http://localhost:8080/?app=coro_target')
102103
time.sleep(2)
103104
test_one_page(browser)
104105
time.sleep(1)
105-
assert PASSED_TEXT in browser.find_element_by_id('markdown-body').get_attribute('innerHTML')
106+
assert PASSED_TEXT in browser.find_element(By.ID, 'markdown-body').get_attribute('innerHTML')
106107

107108

108109
def start_test_server():

test/Readme.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
### 运行测试用例
1111

1212
```bash
13-
pip3 install -e ".[dev]"
14-
npm install -D @percy/agent
13+
pip3 install -r ../requirements.txt
14+
npm install --save-dev @percy/cli
1515
export PERCY_TOKEN=[projects-token]
1616

17-
npx percy exec -- python3 1.basic_output.py auto
17+
npx percy exec -- python3 1.basic.py auto
1818
```
1919

2020

0 commit comments

Comments
 (0)