Hello community,
here is the log from the commit of package python-pytest-qt for
openSUSE:Factory checked in at 2020-01-06 15:24:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-qt (Old)
and /work/SRC/openSUSE:Factory/.python-pytest-qt.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-qt"
Mon Jan 6 15:24:42 2020 rev:6 rq:761148 version:3.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest-qt/python-pytest-qt.changes
2019-02-01 11:48:23.228371230 +0100
+++
/work/SRC/openSUSE:Factory/.python-pytest-qt.new.6675/python-pytest-qt.changes
2020-01-06 15:24:46.160561048 +0100
@@ -1,0 +2,8 @@
+Mon Jan 6 13:07:28 UTC 2020 - Tomáš Chvátal <[email protected]>
+
+- Update to 3.3.0:
+ * Improve message in uncaught exceptions by mentioning the Qt event loop
instead of Qt virtual methods (#255).
+ * pytest-qt now requires pytest version >= 3.0.
+ * qtbot.addWiget now supports an optional before_close_func keyword-only
argument, which if given is a function which is called before the widget is
closed, with the widget as first argument.
+
+-------------------------------------------------------------------
Old:
----
pytest-qt-3.2.2.tar.gz
New:
----
pytest-qt-3.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest-qt.spec ++++++
--- /var/tmp/diff_new_pack.mhJNPh/_old 2020-01-06 15:24:46.696561326 +0100
+++ /var/tmp/diff_new_pack.mhJNPh/_new 2020-01-06 15:24:46.700561328 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-pytest-qt
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-pytest-qt
-Version: 3.2.2
+Version: 3.3.0
Release: 0
Summary: Pytest support for PyQt and PySide applications
License: MIT
@@ -26,7 +26,7 @@
URL: http://github.com/pytest-dev/pytest-qt
Source:
https://files.pythonhosted.org/packages/source/p/pytest-qt/pytest-qt-%{version}.tar.gz
Patch0: skip-timeout-tests.patch
-BuildRequires: %{python_module pytest >= 2.7.0}
+BuildRequires: %{python_module pytest >= 3.0}
BuildRequires: %{python_module qt5}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools}
@@ -34,7 +34,7 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: xvfb-run
-Requires: python-pytest >= 2.7.0
+Requires: python-pytest >= 3.0
Requires: python-qt5
BuildArch: noarch
%python_subpackages
++++++ pytest-qt-3.2.2.tar.gz -> pytest-qt-3.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/.github/FUNDING.yml
new/pytest-qt-3.3.0/.github/FUNDING.yml
--- old/pytest-qt-3.2.2/.github/FUNDING.yml 1970-01-01 01:00:00.000000000
+0100
+++ new/pytest-qt-3.3.0/.github/FUNDING.yml 2019-12-07 14:38:04.000000000
+0100
@@ -0,0 +1 @@
+github: The-Compiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/.github/workflows/main.yml
new/pytest-qt-3.3.0/.github/workflows/main.yml
--- old/pytest-qt-3.2.2/.github/workflows/main.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/pytest-qt-3.3.0/.github/workflows/main.yml 2019-12-07
14:38:04.000000000 +0100
@@ -0,0 +1,83 @@
+name: Python package
+
+on: [push, pull_request]
+
+jobs:
+ build:
+
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+
+ matrix:
+ python-version: [3.6, 3.7, 3.8]
+ qt-lib: [pyqt5, pyside2]
+ os: [ubuntu-latest, windows-latest]
+ include:
+ - python-version: "3.6"
+ tox-env: "py36"
+ - python-version: "3.7"
+ tox-env: "py37"
+ - python-version: "3.8"
+ tox-env: "py38"
+ # pyside2 doesn't seem to support Python 3.8 yet
+ exclude:
+ - python-version: "3.8"
+ qt-lib: "pyside2"
+
+ steps:
+ - uses: actions/checkout@v1
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install tox
+ - name: Test with tox
+ run: |
+ tox -e ${{ matrix.tox-env }}-${{ matrix.qt-lib }} -- -ra --color=yes
+
+ linting:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v1
+ - name: Set up Python
+ uses: actions/setup-python@v1
+ with:
+ python-version: "3.7"
+ - name: Install tox
+ run: |
+ python -m pip install --upgrade pip
+ pip install tox
+ - name: Linting
+ run: |
+ tox -e linting
+
+ deploy:
+
+ runs-on: ubuntu-latest
+
+ needs: [build, linting]
+
+ steps:
+ - uses: actions/checkout@v1
+ - name: Set up Python
+ uses: actions/setup-python@v1
+ with:
+ python-version: "3.7"
+ - name: Build package
+ run: |
+ python -m pip install --upgrade pip setuptools
+ pip install wheel
+ python setup.py sdist bdist_wheel
+ - name: Publish package to PyPI
+ if: github.event_name == 'push' && startsWith(github.event.ref,
'refs/tags')
+ uses: pypa/gh-action-pypi-publish@master
+ with:
+ # change to __token__ when possible:
https://github.com/pypa/pypi-support/issues/98
+ user: nicoddemus
+ password: ${{ secrets.pypi_token }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/.pre-commit-config.yaml
new/pytest-qt-3.3.0/.pre-commit-config.yaml
--- old/pytest-qt-3.2.2/.pre-commit-config.yaml 2018-12-13 18:55:12.000000000
+0100
+++ new/pytest-qt-3.3.0/.pre-commit-config.yaml 2019-12-07 14:38:04.000000000
+0100
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/ambv/black
- rev: 18.6b4
+ rev: 19.10b0
hooks:
- id: black
args: [--safe, --quiet]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/.travis.yml
new/pytest-qt-3.3.0/.travis.yml
--- old/pytest-qt-3.2.2/.travis.yml 2018-12-13 18:55:12.000000000 +0100
+++ new/pytest-qt-3.3.0/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,83 +0,0 @@
-language: python
-python: "3.6"
-sudo: required
-dist: trusty
-
-env:
- global:
- # used by ci-helpers
- - DEPS="pytest tox coveralls six"
- - MINICONDA_VERSION=latest
- - DISPLAY=":99.0"
-
- matrix:
- - LINTING=1
- - PYTEST_QT_API=pyqt4 PYQT_PACKAGE="pyqt=4.*" PYTHON_VERSION=2.7
- - PYTEST_QT_API=pyqt4v2 PYQT_PACKAGE="pyqt=4.*" PYTHON_VERSION=2.7
- - PYTEST_QT_API=pyside PYQT_PACKAGE="pyside=1.*" PYTHON_VERSION=2.7
-
- - PYTEST_QT_API=pyqt4 PYQT_PACKAGE="pyqt=4.*" PYTHON_VERSION=3.4
- - PYTEST_QT_API=pyqt4v2 PYQT_PACKAGE="pyqt=4.*" PYTHON_VERSION=3.4
- - PYTEST_QT_API=pyside PYQT_PACKAGE="pyside=1.*" PYTHON_VERSION=3.4
-
- - PYTEST_QT_API=pyqt5 PYQT_PACKAGE="pyqt=5.*" PYTHON_VERSION=3.5
- - PYTEST_QT_API=pyside2 PYQT_PACKAGE="pyside2=2.*" PYTHON_VERSION=3.5
-
- - PYTEST_QT_API=pyqt5 PYQT_PACKAGE="pyqt=5.*" PYTHON_VERSION=3.6
- - PYTEST_QT_API=pyside2 PYQT_PACKAGE="pyside2=2.*" PYTHON_VERSION=3.6
-
-matrix:
- # PySide2 crashes: #202
- allow_failures:
- - env: PYTEST_QT_API=pyside2 PYQT_PACKAGE="pyside2=2.*"
PYTHON_VERSION=3.5
- - env: PYTEST_QT_API=pyside2 PYQT_PACKAGE="pyside2=2.*"
PYTHON_VERSION=3.6
-
-install:
- - |
- if [ $LINTING == "1" ]; then
- pip install -U pip
- pip install tox
- else
- # Xvfb / window manager
- sudo apt-get update
- sudo apt-get install -y xvfb herbstluftwm
-
- # courtesy of
https://github.com/astropy/ci-helpers/blob/master/travis/setup_conda_linux.sh
- /sbin/start-stop-daemon --start --quiet --pidfile
/tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99
-screen 0 1920x1200x24 -ac +extension GLX +render -noreset
-
- # Setup miniconda
- wget
https://repo.continuum.io/miniconda/Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh
-O miniconda.sh
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$PATH"
- conda config --add channels conda-forge
- conda config --set always_yes yes --set changeps1 no
- conda create -n test --quiet python=${PYTHON_VERSION} ${DEPS}
${PYQT_PACKAGE}
- source activate test && pip install -e .
- fi
-
-before_script:
- - "herbstluftwm &"
- - sleep 1
-
-script:
- - |
- if [ $LINTING == "1" ]; then
- tox -e linting
- else
- source activate test && catchsegv coverage run --source=pytestqt -m
pytest -v tests
- fi
-
-after_success:
- - coveralls
-
-deploy:
- provider: pypi
- skip_upload_docs: true
- user: nicoddemus
- distributions: sdist bdist_wheel
- password:
- secure:
Fql0uLFWz+D6p36BUm+2WB5tjUiuCkOFpU68Dnycn5cIRqZQuBzfNNZPVGHgIUGNZ5rC+rJC+edEvJoF2AB9cQ7kz86SzZuQHdEOwsnR4KQw2tkD5fw2BqH4bQ56SQ+UHAsyQAuDkjShHTrwSTJrzShIE5Poma5BqmqC4mRSgbI=
- on:
- tags: true
- repo: pytest-dev/pytest-qt
- condition: $PYTEST_QT_API = pyqt5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/CHANGELOG.rst
new/pytest-qt-3.3.0/CHANGELOG.rst
--- old/pytest-qt-3.2.2/CHANGELOG.rst 2018-12-13 18:55:12.000000000 +0100
+++ new/pytest-qt-3.3.0/CHANGELOG.rst 2019-12-07 14:38:04.000000000 +0100
@@ -1,3 +1,16 @@
+3.3.0 (2019-12-07)
+------------------
+
+- Improve message in uncaught exceptions by mentioning the Qt event loop
instead of
+ Qt virtual methods (`#255`_).
+
+- ``pytest-qt`` now requires ``pytest`` version >= 3.0.
+
+- ``qtbot.addWiget`` now supports an optional ``before_close_func``
keyword-only argument, which if given is a function
+ which is called before the widget is closed, with the widget as first
argument.
+
+.. _#255: https://github.com/pytest-dev/pytest-qt/pull/255
+
3.2.2 (2018-12-13)
------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/PKG-INFO new/pytest-qt-3.3.0/PKG-INFO
--- old/pytest-qt-3.2.2/PKG-INFO 2018-12-13 18:57:40.000000000 +0100
+++ new/pytest-qt-3.3.0/PKG-INFO 2019-12-07 14:38:08.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pytest-qt
-Version: 3.2.2
+Version: 3.3.0
Summary: pytest support for PyQt and PySide applications
Home-page: http://github.com/pytest-dev/pytest-qt
Author: Bruno Oliveira
@@ -43,8 +43,8 @@
.. |conda-forge| image::
https://img.shields.io/conda/vn/conda-forge/pytest-qt.svg
:target: https://anaconda.org/conda-forge/pytest-qt
- .. |travis| image::
https://img.shields.io/travis/pytest-dev/pytest-qt/master.svg
- :target: https://travis-ci.org/pytest-dev/pytest-qt
+ .. |ci| image::
https://github.com/pytest-dev/pytest-qt/workflows/build/badge.svg
+ :target: https://github.com/pytest-dev/pytest-qt/actions
.. |coverage| image::
http://img.shields.io/coveralls/pytest-dev/pytest-qt.svg
:target: https://coveralls.io/r/pytest-dev/pytest-qt
@@ -52,9 +52,6 @@
.. |docs| image::
https://readthedocs.org/projects/pytest-qt/badge/?version=latest
:target: https://pytest-qt.readthedocs.io
- .. |appveyor| image::
https://img.shields.io/appveyor/ci/nicoddemus/pytest-qt/master.svg
- :target: https://ci.appveyor.com/project/nicoddemus/pytest-qt
-
.. |python| image::
https://img.shields.io/pypi/pyversions/pytest-qt.svg
:target: https://pypi.python.org/pypi/pytest-qt/
:alt: Supported Python versions
@@ -62,7 +59,7 @@
.. |black| image::
https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black
- |python| |version| |conda-forge| |travis| |appveyor| |coverage| |docs|
|black|
+ |python| |version| |conda-forge| |ci| |coverage| |docs| |black|
Features
@@ -141,6 +138,15 @@
can, include some tests that exercise the new code or test that a bug
has been
fixed, and make sure to include yourself in the contributors list. :)
+ To prepare your environment, create a virtual environment and install
``pytest-qt`` in editable mode with ``dev``
+ extras::
+
+ $ pip install --editable .[dev]
+
+ After that install ``pre-commit`` for pre-commit checks::
+
+ $ pre-commit install
+
Running tests
-------------
@@ -206,3 +212,4 @@
Classifier: Topic :: Software Development :: User Interfaces
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Provides-Extra: doc
+Provides-Extra: dev
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/README.rst
new/pytest-qt-3.3.0/README.rst
--- old/pytest-qt-3.2.2/README.rst 2018-12-13 18:55:12.000000000 +0100
+++ new/pytest-qt-3.3.0/README.rst 2019-12-07 14:38:04.000000000 +0100
@@ -35,8 +35,8 @@
.. |conda-forge| image::
https://img.shields.io/conda/vn/conda-forge/pytest-qt.svg
:target: https://anaconda.org/conda-forge/pytest-qt
-.. |travis| image::
https://img.shields.io/travis/pytest-dev/pytest-qt/master.svg
- :target: https://travis-ci.org/pytest-dev/pytest-qt
+.. |ci| image::
https://github.com/pytest-dev/pytest-qt/workflows/build/badge.svg
+ :target: https://github.com/pytest-dev/pytest-qt/actions
.. |coverage| image:: http://img.shields.io/coveralls/pytest-dev/pytest-qt.svg
:target: https://coveralls.io/r/pytest-dev/pytest-qt
@@ -44,9 +44,6 @@
.. |docs| image::
https://readthedocs.org/projects/pytest-qt/badge/?version=latest
:target: https://pytest-qt.readthedocs.io
-.. |appveyor| image::
https://img.shields.io/appveyor/ci/nicoddemus/pytest-qt/master.svg
- :target: https://ci.appveyor.com/project/nicoddemus/pytest-qt
-
.. |python| image:: https://img.shields.io/pypi/pyversions/pytest-qt.svg
:target: https://pypi.python.org/pypi/pytest-qt/
:alt: Supported Python versions
@@ -54,7 +51,7 @@
.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black
-|python| |version| |conda-forge| |travis| |appveyor| |coverage| |docs| |black|
+|python| |version| |conda-forge| |ci| |coverage| |docs| |black|
Features
@@ -133,6 +130,15 @@
can, include some tests that exercise the new code or test that a bug has been
fixed, and make sure to include yourself in the contributors list. :)
+To prepare your environment, create a virtual environment and install
``pytest-qt`` in editable mode with ``dev``
+extras::
+
+ $ pip install --editable .[dev]
+
+After that install ``pre-commit`` for pre-commit checks::
+
+ $ pre-commit install
+
Running tests
-------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/appveyor.yml
new/pytest-qt-3.3.0/appveyor.yml
--- old/pytest-qt-3.2.2/appveyor.yml 2018-12-13 18:55:12.000000000 +0100
+++ new/pytest-qt-3.3.0/appveyor.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,78 +0,0 @@
-# Adapted from the qtpy Appveyor setup
-
-environment:
- global:
- PYTHON: "C:\\conda"
- CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\ci-helpers\\appveyor\\windows_sdk.cmd"
- PYTHON_ARCH: "64" # needs to be set for CMD_IN_ENV to succeed. If a mix
- # of 32 bit and 64 bit builds are needed, move this
- # to the matrix section.
- # Used by atropy ci-helpers
- CONDA_CHANNELS: "conda-forge"
-
- matrix:
- - PYTHON_VERSION: "2.7"
- PYTEST_QT_API: "pyqt4"
- CONDA_DEPENDENCIES: "pytest pyqt=4.*"
- - PYTHON_VERSION: "2.7"
- PYTEST_QT_API: "pyqt4v2"
- CONDA_DEPENDENCIES: "pytest pyqt=4.*"
- - PYTHON_VERSION: "2.7"
- PYTEST_QT_API: "pyside"
- CONDA_DEPENDENCIES: "pytest pyside=1.*"
-
- - PYTHON_VERSION: "3.4"
- PYTEST_QT_API: "pyqt4"
- CONDA_DEPENDENCIES: "pytest pyqt=4.*"
- - PYTHON_VERSION: "3.4"
- PYTEST_QT_API: "pyqt4v2"
- CONDA_DEPENDENCIES: "pytest pyqt=4.*"
- - PYTHON_VERSION: "3.4"
- PYTEST_QT_API: "pyside"
- CONDA_DEPENDENCIES: "pytest pyside=1.*"
-
- - PYTHON_VERSION: "3.5"
- PYTEST_QT_API: "pyqt5"
- CONDA_DEPENDENCIES: "pytest pyqt=5.*"
- - PYTHON_VERSION: "3.5"
- PYTEST_QT_API: "pyside2"
- CONDA_DEPENDENCIES: "pytest pyside2=2.*"
-
- - PYTHON_VERSION: "3.6"
- PYTEST_QT_API: "pyqt5"
- CONDA_DEPENDENCIES: "pytest pyqt=5.*"
- - PYTHON_VERSION: "3.6"
- PYTEST_QT_API: "pyside2"
- CONDA_DEPENDENCIES: "pytest pyside2=2.*"
-
-matrix:
- exclude:
- # PySide2 crashes: #202
- - PYTEST_QT_API: "pyside2"
-
-platform:
- -x64
-
-install:
- # If there is a newer build queued for the same PR, cancel this one.
- # The AppVeyor 'rollout builds' option is supposed to serve the same
- # purpose but it is problematic because it tends to cancel builds pushed
- # directly to master instead of just PR builds (or the converse).
- # credits: JuliaLang developers.
- - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and
$env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod `
-
https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds
| `
- Where-Object pullRequestId -eq
$env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
- throw "There are newer queued builds for this pull request, failing
early." }
- - "git clone --depth 1 git://github.com/astropy/ci-helpers.git"
- - "powershell ci-helpers/appveyor/install-miniconda.ps1"
- - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- - "activate test"
- - "pip install -e ."
-
-# Not a .NET project, we build in the install step instead
-build: false
-
-test_script:
- - "%CMD_IN_ENV% python -m pytest -v tests/"
-
-skip_tags: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/docs/intro.rst
new/pytest-qt-3.3.0/docs/intro.rst
--- old/pytest-qt-3.2.2/docs/intro.rst 2018-12-13 18:55:12.000000000 +0100
+++ new/pytest-qt-3.3.0/docs/intro.rst 2019-12-07 14:38:04.000000000 +0100
@@ -28,7 +28,7 @@
Python 2.7 or later, including Python 3.4+.
-Requires pytest version 2.7 or later.
+Requires pytest version 3.0 or later.
Works with either ``PyQt5``, ``PyQt4``, ``PySide`` or ``PySide2``, picking
whichever
is available on the system giving preference to the first one installed in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/docs/logging.rst
new/pytest-qt-3.3.0/docs/logging.rst
--- old/pytest-qt-3.2.2/docs/logging.rst 2018-12-13 18:55:12.000000000
+0100
+++ new/pytest-qt-3.3.0/docs/logging.rst 2019-12-07 14:38:04.000000000
+0100
@@ -15,11 +15,11 @@
.. code-block:: python
- from pytestqt.qt_compat import qWarning
+ from pytestqt.qt_compat import qt_api
def do_something():
- qWarning("this is a WARNING message")
+ qt_api.qWarning("this is a WARNING message")
def test_foo():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/pytest_qt.egg-info/PKG-INFO
new/pytest-qt-3.3.0/pytest_qt.egg-info/PKG-INFO
--- old/pytest-qt-3.2.2/pytest_qt.egg-info/PKG-INFO 2018-12-13
18:57:40.000000000 +0100
+++ new/pytest-qt-3.3.0/pytest_qt.egg-info/PKG-INFO 2019-12-07
14:38:08.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pytest-qt
-Version: 3.2.2
+Version: 3.3.0
Summary: pytest support for PyQt and PySide applications
Home-page: http://github.com/pytest-dev/pytest-qt
Author: Bruno Oliveira
@@ -43,8 +43,8 @@
.. |conda-forge| image::
https://img.shields.io/conda/vn/conda-forge/pytest-qt.svg
:target: https://anaconda.org/conda-forge/pytest-qt
- .. |travis| image::
https://img.shields.io/travis/pytest-dev/pytest-qt/master.svg
- :target: https://travis-ci.org/pytest-dev/pytest-qt
+ .. |ci| image::
https://github.com/pytest-dev/pytest-qt/workflows/build/badge.svg
+ :target: https://github.com/pytest-dev/pytest-qt/actions
.. |coverage| image::
http://img.shields.io/coveralls/pytest-dev/pytest-qt.svg
:target: https://coveralls.io/r/pytest-dev/pytest-qt
@@ -52,9 +52,6 @@
.. |docs| image::
https://readthedocs.org/projects/pytest-qt/badge/?version=latest
:target: https://pytest-qt.readthedocs.io
- .. |appveyor| image::
https://img.shields.io/appveyor/ci/nicoddemus/pytest-qt/master.svg
- :target: https://ci.appveyor.com/project/nicoddemus/pytest-qt
-
.. |python| image::
https://img.shields.io/pypi/pyversions/pytest-qt.svg
:target: https://pypi.python.org/pypi/pytest-qt/
:alt: Supported Python versions
@@ -62,7 +59,7 @@
.. |black| image::
https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black
- |python| |version| |conda-forge| |travis| |appveyor| |coverage| |docs|
|black|
+ |python| |version| |conda-forge| |ci| |coverage| |docs| |black|
Features
@@ -141,6 +138,15 @@
can, include some tests that exercise the new code or test that a bug
has been
fixed, and make sure to include yourself in the contributors list. :)
+ To prepare your environment, create a virtual environment and install
``pytest-qt`` in editable mode with ``dev``
+ extras::
+
+ $ pip install --editable .[dev]
+
+ After that install ``pre-commit`` for pre-commit checks::
+
+ $ pre-commit install
+
Running tests
-------------
@@ -206,3 +212,4 @@
Classifier: Topic :: Software Development :: User Interfaces
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Provides-Extra: doc
+Provides-Extra: dev
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/pytest_qt.egg-info/SOURCES.txt
new/pytest-qt-3.3.0/pytest_qt.egg-info/SOURCES.txt
--- old/pytest-qt-3.2.2/pytest_qt.egg-info/SOURCES.txt 2018-12-13
18:57:40.000000000 +0100
+++ new/pytest-qt-3.3.0/pytest_qt.egg-info/SOURCES.txt 2019-12-07
14:38:08.000000000 +0100
@@ -3,16 +3,16 @@
.pre-commit-config.yaml
.project
.pydevproject
-.travis.yml
CHANGELOG.rst
HOWTORELEASE.rst
LICENSE
README.rst
-appveyor.yml
requirements.txt
setup.cfg
setup.py
tox.ini
+.github/FUNDING.yml
+.github/workflows/main.yml
docs/.gitignore
docs/Makefile
docs/app_exit.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/pytest_qt.egg-info/requires.txt
new/pytest-qt-3.3.0/pytest_qt.egg-info/requires.txt
--- old/pytest-qt-3.2.2/pytest_qt.egg-info/requires.txt 2018-12-13
18:57:40.000000000 +0100
+++ new/pytest-qt-3.3.0/pytest_qt.egg-info/requires.txt 2019-12-07
14:38:08.000000000 +0100
@@ -1,4 +1,8 @@
-pytest>=2.7.0
+pytest>=3.0.0
+
+[dev]
+pre-commit
+tox
[doc]
sphinx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/pytestqt/_version.py
new/pytest-qt-3.3.0/pytestqt/_version.py
--- old/pytest-qt-3.2.2/pytestqt/_version.py 2018-12-13 18:57:40.000000000
+0100
+++ new/pytest-qt-3.3.0/pytestqt/_version.py 2019-12-07 14:38:08.000000000
+0100
@@ -1,4 +1,4 @@
# coding: utf-8
# file generated by setuptools_scm
# don't change, don't track in version control
-version = '3.2.2'
+version = '3.3.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/pytestqt/exceptions.py
new/pytest-qt-3.3.0/pytestqt/exceptions.py
--- old/pytest-qt-3.2.2/pytestqt/exceptions.py 2018-12-13 18:55:12.000000000
+0100
+++ new/pytest-qt-3.3.0/pytestqt/exceptions.py 2019-12-07 14:38:04.000000000
+0100
@@ -79,7 +79,7 @@
from io import StringIO
stream = StringIO()
- stream.write("Qt exceptions in virtual methods:\n")
+ stream.write("Exceptions caught in Qt event loop:\n")
sep = "_" * 80 + "\n"
stream.write(sep)
for (exc_type, value, tback) in exceptions:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/pytestqt/plugin.py
new/pytest-qt-3.3.0/pytestqt/plugin.py
--- old/pytest-qt-3.2.2/pytestqt/plugin.py 2018-12-13 18:55:12.000000000
+0100
+++ new/pytest-qt-3.3.0/pytestqt/plugin.py 2019-12-07 14:38:04.000000000
+0100
@@ -42,7 +42,7 @@
return []
[email protected]_fixture(scope="session")
[email protected](scope="session")
def qapp(qapp_args):
"""
Fixture that instantiates the QApplication instance that will be used by
@@ -55,9 +55,9 @@
if app is None:
global _qapp_instance
_qapp_instance = qt_api.QApplication(qapp_args)
- yield _qapp_instance
+ return _qapp_instance
else:
- yield app # pragma: no cover
+ return app # pragma: no cover
# holds a global QApplication instance created in the qapp fixture; keeping
@@ -86,7 +86,7 @@
return _QtMessageCapture([]) # pragma: no cover
[email protected]_fixture
[email protected]
def qtmodeltester(request):
"""
Fixture used to create a ModelTester instance to test models.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/pytestqt/qtbot.py
new/pytest-qt-3.3.0/pytestqt/qtbot.py
--- old/pytest-qt-3.2.2/pytestqt/qtbot.py 2018-12-13 18:55:12.000000000
+0100
+++ new/pytest-qt-3.3.0/pytestqt/qtbot.py 2019-12-07 14:38:04.000000000
+0100
@@ -64,7 +64,7 @@
.. staticmethod:: keyPress (widget, key[, modifier=Qt.NoModifier[,
delay=-1]])
.. staticmethod:: keyRelease (widget, key[, modifier=Qt.NoModifier[,
delay=-1]])
- Sends one or more keyword events to a widget.
+ Sends one or more keyboard events to a widget.
:param QWidget widget: the widget that will receive the event
@@ -132,7 +132,7 @@
:param int delay: after the event, delay the test for this miliseconds
(if > 0).
- .. _QTest API: http://doc.qt.digia.com/4.8/qtest.html
+ .. _QTest API: http://doc.qt.io/qt-5/qtest.html
"""
@@ -152,7 +152,7 @@
else:
return True
- def addWidget(self, widget):
+ def addWidget(self, widget, **kwargs):
"""
Adds a widget to be tracked by this bot. This is not required, but
will ensure that the
widget gets closed by the end of the test, so it is highly recommended.
@@ -160,9 +160,13 @@
:param QWidget widget:
Widget to keep track of.
+ :kwparam before_close_func:
+ A function that receives the widget as single parameter, which is
called just before
+ the ``.close()`` method gets called.
+
.. note:: This method is also available as ``add_widget`` (pep-8 alias)
"""
- _add_widget(self._request.node, widget)
+ _add_widget(self._request.node, widget, **kwargs)
add_widget = addWidget # pep-8 alias
@@ -654,12 +658,13 @@
QtBot.CallbackCalledTwiceError = CallbackCalledTwiceError
-def _add_widget(item, widget):
+def _add_widget(item, widget, **kwargs):
"""
Register a widget into the given pytest item for later closing.
"""
+ before_close_func = kwargs.pop("before_close_func", None)
qt_widgets = getattr(item, "qt_widgets", [])
- qt_widgets.append(weakref.ref(widget))
+ qt_widgets.append((weakref.ref(widget), before_close_func))
item.qt_widgets = qt_widgets
@@ -669,9 +674,11 @@
"""
widgets = getattr(item, "qt_widgets", None)
if widgets:
- for w in item.qt_widgets:
+ for w, before_close_func in item.qt_widgets:
w = w()
if w is not None:
+ if before_close_func is not None:
+ before_close_func(w)
w.close()
w.deleteLater()
del item.qt_widgets
@@ -681,7 +688,8 @@
"""
Iterates over widgets registered in the given pytest item.
"""
- return iter(getattr(item, "qt_widgets", []))
+ qt_widgets = getattr(item, "qt_widgets", [])
+ return (w for (w, _) in qt_widgets)
class _WaitWidgetContextManager(object):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/pytestqt/wait_signal.py
new/pytest-qt-3.3.0/pytestqt/wait_signal.py
--- old/pytest-qt-3.2.2/pytestqt/wait_signal.py 2018-12-13 18:55:12.000000000
+0100
+++ new/pytest-qt-3.3.0/pytestqt/wait_signal.py 2019-12-07 14:38:04.000000000
+0100
@@ -308,14 +308,22 @@
super(MultiSignalBlocker, self).__init__(timeout, raising=raising)
self._order = order
self._check_params_callbacks = check_params_cbs
- self._signals_emitted = [] # list of booleans, indicates whether the
signal was already emitted
- self._signals_map = {} # maps from a unique Signal to a list of
indices where to expect signal instance emits
- self._signals = [] # list of all Signals (for compatibility with
_AbstractSignalBlocker)
+ self._signals_emitted = (
+ []
+ ) # list of booleans, indicates whether the signal was already emitted
+ self._signals_map = (
+ {}
+ ) # maps from a unique Signal to a list of indices where to expect
signal instance emits
+ self._signals = (
+ []
+ ) # list of all Signals (for compatibility with
_AbstractSignalBlocker)
self._slots = [] # list of slot functions
self._signal_expected_index = 0 # only used when forcing order
self._strict_order_violated = False
self._actual_signal_and_args_at_violation = None
- self._signal_names = {} # maps from the unique Signal to the name of
the signal (as string)
+ self._signal_names = (
+ {}
+ ) # maps from the unique Signal to the name of the signal (as string)
self.all_signals_and_args = [] # list of SignalAndArgs instances
def add_signals(self, signals):
@@ -422,14 +430,14 @@
if not self._strict_order_violated:
# only do the check if the strict order has not been violated
yet
self._strict_order_violated = (
- True
- ) # assume the order has been violated this time
+ True # assume the order has been violated this time
+ )
if self._check_signal_matches_expected_index(unique_signal,
*args):
self._signals_emitted[self._signal_expected_index] = True
self._signal_expected_index += 1
self._strict_order_violated = (
- False
- ) # order has not been violated after all!
+ False # order has not been violated after all!
+ )
else:
if self._are_signal_names_available():
self._actual_signal_and_args_at_violation =
SignalAndArgs(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/setup.py new/pytest-qt-3.3.0/setup.py
--- old/pytest-qt-3.2.2/setup.py 2018-12-13 18:55:12.000000000 +0100
+++ new/pytest-qt-3.3.0/setup.py 2019-12-07 14:38:04.000000000 +0100
@@ -27,8 +27,11 @@
name="pytest-qt",
packages=["pytestqt"],
entry_points={"pytest11": ["pytest-qt = pytestqt.plugin"]},
- install_requires=["pytest>=2.7.0"],
- extras_require={"doc": ["sphinx", "sphinx_rtd_theme"]},
+ install_requires=["pytest>=3.0.0"],
+ extras_require={
+ "doc": ["sphinx", "sphinx_rtd_theme"],
+ "dev": ["pre-commit", "tox"],
+ },
# metadata for upload to PyPI
author="Bruno Oliveira",
author_email="[email protected]",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/tests/conftest.py
new/pytest-qt-3.3.0/tests/conftest.py
--- old/pytest-qt-3.2.2/tests/conftest.py 2018-12-13 18:55:12.000000000
+0100
+++ new/pytest-qt-3.3.0/tests/conftest.py 2019-12-07 14:38:04.000000000
+0100
@@ -14,8 +14,11 @@
Fixture that makes it easier for tests to ensure signals emitted and
timeouts are being respected.
"""
- # time.clock() is more accurate on Windows
- get_time = time.clock if sys.platform.startswith("win") else time.time
+ if sys.version_info < (3,):
+ # time.clock() is more accurate on Windows
+ get_time = time.clock if sys.platform.startswith("win") else time.time
+ else:
+ get_time = time.monotonic
class StopWatch:
def __init__(self):
@@ -42,7 +45,7 @@
return StopWatch()
[email protected]_fixture
[email protected]
def timer():
"""
Returns a Timer-like object which can be used to trigger signals and
callbacks
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/tests/test_basics.py
new/pytest-qt-3.3.0/tests/test_basics.py
--- old/pytest-qt-3.2.2/tests/test_basics.py 2018-12-13 18:55:12.000000000
+0100
+++ new/pytest-qt-3.3.0/tests/test_basics.py 2019-12-07 14:38:04.000000000
+0100
@@ -170,7 +170,7 @@
return EventsQueue()
- @pytest.yield_fixture
+ @pytest.fixture
def fix(events_queue, qapp):
assert events_queue.events == []
yield
@@ -260,7 +260,7 @@
e.accept()
self.closed = True
- @pytest.yield_fixture
+ @pytest.fixture
def widget(qtbot):
w = Widget()
qtbot.add_widget(w)
@@ -479,3 +479,35 @@
with pytest.raises(RuntimeError, match=expected):
qt_api.set_qt_api(api=None)
+
+
+def test_before_close_func(testdir):
+ """
+ Test the `before_close_func` argument of qtbot.addWidget.
+ """
+ import sys
+
+ testdir.makepyfile(
+ """
+ import sys
+ import pytest
+ from pytestqt.qt_compat import qt_api
+
+ def widget_closed(w):
+ assert w.some_id == 'my id'
+ sys.pytest_qt_widget_closed = True
+
+ @pytest.fixture
+ def widget(qtbot):
+ w = qt_api.QWidget()
+ w.some_id = 'my id'
+ qtbot.add_widget(w, before_close_func=widget_closed)
+ return w
+
+ def test_foo(widget):
+ pass
+ """
+ )
+ result = testdir.runpytest_inprocess()
+ result.stdout.fnmatch_lines(["*= 1 passed in *"])
+ assert sys.pytest_qt_widget_closed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/tests/test_exceptions.py
new/pytest-qt-3.3.0/tests/test_exceptions.py
--- old/pytest-qt-3.2.2/tests/test_exceptions.py 2018-12-13
18:55:12.000000000 +0100
+++ new/pytest-qt-3.3.0/tests/test_exceptions.py 2019-12-07
14:38:04.000000000 +0100
@@ -8,7 +8,7 @@
@pytest.mark.parametrize("raise_error", [False, True])
def test_catch_exceptions_in_virtual_methods(testdir, raise_error):
"""
- Catch exceptions that happen inside Qt virtual methods and make the
+ Catch exceptions that happen inside Qt's event loop and make the
tests fail if any.
:type testdir: _pytest.pytester.TmpTestdir
@@ -42,7 +42,7 @@
)
result = testdir.runpytest()
if raise_error:
- expected_lines = ["*Qt exceptions in virtual methods:*"]
+ expected_lines = ["*Exceptions caught in Qt event loop:*"]
if sys.version_info.major == 3:
expected_lines.append("RuntimeError: original error")
expected_lines.extend(["*ValueError: mistakes were made*", "*1
failed*"])
@@ -61,7 +61,7 @@
obtained_text = format_captured_exceptions(exceptions)
lines = obtained_text.splitlines()
- assert "Qt exceptions in virtual methods:" in lines
+ assert "Exceptions caught in Qt event loop:" in lines
assert "ValueError: errors were made" in lines
@@ -78,7 +78,7 @@
obtained_text = format_captured_exceptions(exceptions)
lines = obtained_text.splitlines()
- assert "Qt exceptions in virtual methods:" in lines
+ assert "Exceptions caught in Qt event loop:" in lines
assert "ValueError: errors were made" in lines
assert "RuntimeError: error handling value error" in lines
@@ -250,7 +250,7 @@
raise RuntimeError('event processed')
return True
- @pytest.yield_fixture
+ @pytest.fixture
def widget(qapp):
w = MyWidget()
{setup_code}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/tests/test_wait_until.py
new/pytest-qt-3.3.0/tests/test_wait_until.py
--- old/pytest-qt-3.2.2/tests/test_wait_until.py 2018-12-13
18:55:12.000000000 +0100
+++ new/pytest-qt-3.3.0/tests/test_wait_until.py 2019-12-07
14:38:04.000000000 +0100
@@ -38,7 +38,7 @@
return check_ticks
[email protected]_fixture
[email protected]
def tick_counter():
"""
Returns an object which counts timer "ticks" periodically.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pytest-qt-3.2.2/tox.ini new/pytest-qt-3.3.0/tox.ini
--- old/pytest-qt-3.2.2/tox.ini 2018-12-13 18:55:12.000000000 +0100
+++ new/pytest-qt-3.3.0/tox.ini 2019-12-07 14:38:04.000000000 +0100
@@ -4,6 +4,7 @@
[testenv]
deps=
pytest
+ pytest-xvfb
pyside2: pyside2
pyqt5: pyqt5
commands=
@@ -11,6 +12,8 @@
setenv=
pyside2: PYTEST_QT_API=pyside2
pyqt5: PYTEST_QT_API=pyqt5
+ QT_QPA_PLATFORM=offscreen
+
passenv=DISPLAY XAUTHORITY USER USERNAME
[testenv:linting]