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]


Reply via email to