Xqt has submitted this change. (
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1079656?usp=email )
Change subject: [test] run gui_tests with pytest and pytest-xvfb
......................................................................
[test] run gui_tests with pytest and pytest-xvfb
Also remove PYWIKIBOT_TEST_GUI environment variable.
Bug: T377065
Change-Id: Ibee9b624cb21158870b04c446846c890f07e33b8
---
M .github/workflows/pywikibot-ci.yml
M dev-requirements.txt
M tests/README.rst
M tests/gui_tests.py
4 files changed, 24 insertions(+), 18 deletions(-)
Approvals:
Xqt: Verified; Looks good to me, approved
jenkins-bot: Verified
diff --git a/.github/workflows/pywikibot-ci.yml
b/.github/workflows/pywikibot-ci.yml
index 7e05b1f..5119a15 100644
--- a/.github/workflows/pywikibot-ci.yml
+++ b/.github/workflows/pywikibot-ci.yml
@@ -14,7 +14,6 @@
env:
PYWIKIBOT_TEST_RUNNING: 1
PYWIKIBOT_USERNAME: Pywikibot-test
- PYWIKIBOT_TEST_GUI: 1
jobs:
build:
@@ -74,9 +73,6 @@
with:
python-version: ${{ matrix.python-version }}
- - name: Install Tkinter for Ubuntu
- run: sudo apt-get install python3-tk
-
- name: Install dependencies
run: |
python -m pip install --upgrade pip
@@ -127,7 +123,7 @@
${{ (matrix.site == 'wikisource:zh' || matrix.test_no_rc) && 1 || 0
}}
run: |
python pwb.py version
- if [ ${{matrix.site || 0}} != 'wikipedia:test' ]; then
+ if [ ${{matrix.site || 0}} != 'wikisource:zh' ]; then
coverage run -m unittest discover -vv -p \"*_tests.py\";
else
pytest --cov=.;
diff --git a/dev-requirements.txt b/dev-requirements.txt
index 87e1c4a..a87313f 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -6,6 +6,7 @@
pytest-cov >= 2.11.1; python_version<"3.10"
pytest-subtests >= 0.3.2
pytest-attrib>=0.1.3
+pytest-xvfb>=3.0.0
pre-commit
coverage>=5.2.1
diff --git a/tests/README.rst b/tests/README.rst
index 94f8dfe..53a0784 100644
--- a/tests/README.rst
+++ b/tests/README.rst
@@ -81,13 +81,6 @@
Environment variables
=====================
-**PYWIKIBOT_TEST_GUI**
- Enable :source:`tests/gui_tests`. Used for AppVeyor tests. GitHub actions
would
- fail due to ``couldn't connect to display ":1.0"`` error. Set this
environment
- variable to run this test locally::
-
- PYWIKIBOT_TEST_GUI=1
-
**PYWIKIBOT_TEST_LOGOUT**
Used when a test is logging out the test user. This environment variable
enables :source:`tests/site_login_logout_tests`. The environment setting is
@@ -174,6 +167,9 @@
pwb PYWIKIBOT_TEST_WRITE script_tests -v TestScriptSimulate.test_archivebot
+.. versionremoved:: 9.5
+ The :envvar:`PYWIKIBOT_TEST_GUI` environment variable.
+
Decorators
==========
diff --git a/tests/gui_tests.py b/tests/gui_tests.py
index b1602af..f6c51a4 100755
--- a/tests/gui_tests.py
+++ b/tests/gui_tests.py
@@ -1,13 +1,14 @@
#!/usr/bin/env python3
"""Tests for the Tk UI."""
#
-# (C) Pywikibot team, 2008-2023
+# (C) Pywikibot team, 2008-2024
#
# Distributed under the terms of the MIT license.
#
from __future__ import annotations
import os
+import sys
import unittest
from contextlib import suppress
@@ -59,12 +60,24 @@
def setUpModule():
"""Skip tests if tkinter or PIL is not installed.
- Also skip test if ``PYWIKIBOT_TEST_GUI`` environment variable is not
- set. Otherwise import modules and run tests.
+ .. versionchanged:: 7.7
+ skip test if ``PYWIKIBOT_TEST_GUI`` environment variable is not
+ set.
+ .. versionchanged:: 9.5
+ :envvar:`PYWIKIBOT_TEST_GUI` environment variable was removed.
+ ``pytest`` with ``pytest-xvfb `` extension is required for this
+ tests on github actions.
"""
- if os.environ.get('PYWIKIBOT_TEST_GUI', '0') != '1':
- raise unittest.SkipTest('Tkinter tests are not enabled. '
- '(set PYWIKIBOT_TEST_GUI=1 to enable)')
+ if os.environ.get('GITHUB_ACTIONS'):
+ skip = True
+ if 'pytest' in sys.modules:
+ with suppress(ModuleNotFoundError):
+ import pytest_xvfb # noqa: F401
+ skip = False
+
+ if skip:
+ raise unittest.SkipTest('Tkinter tests must run with pytest and '
+ 'needs pytest-xvfb extension')
global EditBoxWindow, Tkdialog, tkinter
--
To view, visit
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1079656?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ibee9b624cb21158870b04c446846c890f07e33b8
Gerrit-Change-Number: 1079656
Gerrit-PatchSet: 6
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]