Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pytest-plus for 
openSUSE:Factory checked in at 2023-05-10 16:20:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-plus (Old)
 and      /work/SRC/openSUSE:Factory/.python-pytest-plus.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pytest-plus"

Wed May 10 16:20:03 2023 rev:2 rq:1086047 version:0.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest-plus/python-pytest-plus.changes    
2020-08-17 12:04:14.618656255 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-pytest-plus.new.1533/python-pytest-plus.changes
  2023-05-10 16:20:06.255535406 +0200
@@ -1,0 +2,18 @@
+Wed May 10 07:53:52 UTC 2023 - Johannes Kastl <ka...@b1-systems.de>
+
+- update to 0.4.0:
+  * Minor Changes
+    - Requires py39 or newer
+    - Updated metadata links
+    - Bump minimal requirements
+  * Bugfixes
+    - Refactor GHA pipelines
+    - Adopt PEP-621 packaging
+- no release 0.3.0 available
+
+-------------------------------------------------------------------
+Wed May 10 07:34:46 UTC 2023 - Johannes Kastl <ka...@b1-systems.de>
+
+- add sle15_python_module_pythons
+
+-------------------------------------------------------------------

Old:
----
  pytest-plus-0.2.tar.gz

New:
----
  pytest-plus-0.4.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pytest-plus.spec ++++++
--- /var/tmp/diff_new_pack.VQU4G0/_old  2023-05-10 16:20:06.763538411 +0200
+++ /var/tmp/diff_new_pack.VQU4G0/_new  2023-05-10 16:20:06.767538435 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-pytest-plus
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,24 +16,27 @@
 #
 
 
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%{?sle15_python_module_pythons}
 Name:           python-pytest-plus
-Version:        0.2
+Version:        0.4.0
 Release:        0
 Summary:        Extension for pytest to enforce minimum tests pass
 License:        MIT
 Group:          Development/Languages/Python
 URL:            https://github.com/pycontribs/pytest-plus
 Source:         
https://files.pythonhosted.org/packages/source/p/pytest-plus/pytest-plus-%{version}.tar.gz
-BuildRequires:  %{python_module setuptools_scm}
-BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module pip}
+BuildRequires:  %{python_module setuptools >= 63.0.0}
+BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
-Requires:       python-pytest >= 3.50
-BuildArch:      noarch
 # SECTION test requirements
-BuildRequires:  %{python_module pytest >= 3.50}
+BuildRequires:  %{python_module pytest >= 6.0.1}
 # /SECTION
+Requires:       python-pytest >= 6.0.1
+Suggests:       python-coverage >= 7.0.0
+Suggests:       python-pytest-html
+BuildArch:      noarch
 %python_subpackages
 
 %description
@@ -43,10 +46,10 @@
 %setup -q -n pytest-plus-%{version}
 
 %build
-%python_build
+%pyproject_wheel
 
 %install
-%python_install
+%pyproject_install
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check

++++++ pytest-plus-0.2.tar.gz -> pytest-plus-0.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.github/dependabot.yml 
new/pytest-plus-0.4.0/.github/dependabot.yml
--- old/pytest-plus-0.2/.github/dependabot.yml  1970-01-01 01:00:00.000000000 
+0100
+++ new/pytest-plus-0.4.0/.github/dependabot.yml        2022-12-24 
11:27:01.000000000 +0100
@@ -0,0 +1,20 @@
+---
+# Until bug below is sorted we will not allow dependabot to run by itself
+# https://github.com/dependabot/dependabot-core/issues/369
+version: 2
+updates:
+  - package-ecosystem: pip
+    directory: /
+    schedule:
+      interval: daily
+    labels:
+      - dependabot-deps-updates
+      - skip-changelog
+    versioning-strategy: lockfile-only
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: daily
+    labels:
+      - "dependencies"
+      - "skip-changelog"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.github/labels.yml 
new/pytest-plus-0.4.0/.github/labels.yml
--- old/pytest-plus-0.2/.github/labels.yml      2020-03-18 16:59:26.000000000 
+0100
+++ new/pytest-plus-0.4.0/.github/labels.yml    1970-01-01 01:00:00.000000000 
+0100
@@ -1,38 +0,0 @@
-# Format and labels used aim to match those used by Ansible project
-# https://github.com/marketplace/actions/github-labeler
-- name: bug
-  color: "fbca04"
-  description: "This issue/PR relates to a bug."
-- name: deprecated
-  color: "fef2c0"
-  description: "This issue/PR relates to a deprecated module."
-- name: docs
-  color: "4071a5"
-  description: "This issue/PR relates to or includes documentation."
-- name: enhancement
-  color: "ededed"
-  description: "This issue/PR relates to a feature request."
-- name: feature
-  color: "006b75"
-  description: "This issue/PR relates to a feature request."
-- name: major
-  color: "c6476b"
-  description: "Marks an important and likely breaking change."
-- name: packaging
-  color: "4071a5"
-  description: "Packaging category"
-- name: performance
-  color: "555555"
-  description: "Relates to product or testing performance."
-- name: skip-changelog
-  color: "eeeeee"
-  description: "Can be missed from the changelog."
-- name: stale
-  color: "eeeeee"
-  description: "Not updated in long time, will be closed soon."
-- name: wontfix
-  color: "eeeeee"
-  description: "This will not be worked on"
-- name: test
-  color: "0e8a16"
-  description: "This PR relates to tests, QA, CI."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.github/release-drafter.yml 
new/pytest-plus-0.4.0/.github/release-drafter.yml
--- old/pytest-plus-0.2/.github/release-drafter.yml     2020-01-11 
14:04:25.000000000 +0100
+++ new/pytest-plus-0.4.0/.github/release-drafter.yml   2022-12-24 
11:27:01.000000000 +0100
@@ -1,18 +1,3 @@
-categories:
-  - title: 'Features'
-    labels:
-      - 'feature'
-      - 'enhancement'
-  - title: 'Bug Fixes'
-    labels:
-      - 'fix'
-      - 'bugfix'
-      - 'bug'
-  - title: 'Maintenance'
-    label: 'chore'
-exclude-labels:
-  - 'skip-changelog'
-template: |
-  ## Changes
-
-  $CHANGES
+---
+# see https://github.com/ansible/devtools
+_extends: ansible/devtools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.github/workflows/ack.yml 
new/pytest-plus-0.4.0/.github/workflows/ack.yml
--- old/pytest-plus-0.2/.github/workflows/ack.yml       1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/.github/workflows/ack.yml     2022-12-24 
11:27:01.000000000 +0100
@@ -0,0 +1,10 @@
+---
+# See https://github.com/ansible/devtools/blob/main/.github/workflows/ack.yml
+name: ack
+on:
+  pull_request_target:
+    types: [opened, labeled, unlabeled, synchronize]
+
+jobs:
+  ack:
+    uses: ansible/devtools/.github/workflows/ack.yml@main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.github/workflows/main.yml 
new/pytest-plus-0.4.0/.github/workflows/main.yml
--- old/pytest-plus-0.2/.github/workflows/main.yml      2020-03-19 
12:14:29.000000000 +0100
+++ new/pytest-plus-0.4.0/.github/workflows/main.yml    1970-01-01 
01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
-name: main
-
-on:
-  push:
-    branches:
-      - master
-      - "[0-9]+.[0-9]+.x"
-    tags:
-      - "*"
-
-  pull_request:
-    branches:
-      - master
-      - "[0-9]+.[0-9]+.x"
-
-jobs:
-  build:
-    runs-on: ${{ matrix.os }}
-
-    strategy:
-      fail-fast: false
-      matrix:
-        name: [
-          "ubuntu-py27",
-          "ubuntu-py36",
-          "ubuntu-py37",
-          "ubuntu-py38",
-          "linting",
-          "packaging",
-        ]
-        os: [
-          "ubuntu-latest",
-        ]
-
-        include:
-
-          - name: "ubuntu-py27"
-            python: "2.7"
-            os: ubuntu-latest
-            tox_env: "py27"
-          - name: "ubuntu-py36"
-            python: "3.6"
-            os: ubuntu-latest
-            tox_env: "py36"
-          - name: "ubuntu-py37"
-            python: "3.7"
-            os: ubuntu-latest
-            tox_env: "py37"
-          - name: "ubuntu-py38"
-            python: "3.8"
-            os: ubuntu-latest
-            tox_env: "py38"
-
-          - name: "linting"
-            python: "3.7"
-            os: ubuntu-latest
-            tox_env: "linting"
-          - name: "packaging"
-            python: "3.7"
-            os: ubuntu-latest
-            tox_env: "packaging"
-
-    steps:
-      - uses: actions/checkout@v1
-      - name: Set up Python ${{ matrix.python }}
-        uses: actions/setup-python@v1
-        with:
-          python-version: ${{ matrix.python }}
-      - name: Install dependencies
-        run: |
-          python -m pip install --upgrade pip
-          pip install tox
-      - name: Test
-        run: "tox -e ${{ matrix.tox_env }}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.github/workflows/push.yml 
new/pytest-plus-0.4.0/.github/workflows/push.yml
--- old/pytest-plus-0.2/.github/workflows/push.yml      1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/.github/workflows/push.yml    2022-12-24 
11:27:01.000000000 +0100
@@ -0,0 +1,13 @@
+---
+# See https://github.com/ansible/devtools/blob/main/.github/workflows/push.yml
+name: push
+on:
+  push:
+    branches:
+      - main
+      - "releases/**"
+      - "stable/**"
+
+jobs:
+  ack:
+    uses: ansible/devtools/.github/workflows/push.yml@main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.github/workflows/release.yml 
new/pytest-plus-0.4.0/.github/workflows/release.yml
--- old/pytest-plus-0.2/.github/workflows/release.yml   1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/.github/workflows/release.yml 2022-12-24 
11:27:01.000000000 +0100
@@ -0,0 +1,37 @@
+---
+name: release
+
+on:
+  release:
+    types: [published]
+
+jobs:
+  pypi:
+    name: Publish to PyPI registry
+    environment: release
+    runs-on: ubuntu-22.04
+
+    env:
+      FORCE_COLOR: 1
+      PY_COLORS: 1
+      TOXENV: pkg
+
+    steps:
+      - name: Switch to using Python 3.9 by default
+        uses: actions/setup-python@v4
+        with:
+          python-version: 3.9
+      - name: Install tox
+        run: python3 -m pip install --user "tox>=4.0.8"
+      - name: Check out src from Git
+        uses: actions/checkout@v3
+        with:
+          fetch-depth: 0 # needed by setuptools-scm
+      - name: Build dists
+        run: python -m tox
+      - name: Publish to pypi.org
+        if: >- # "create" workflows run separately from "push" & "pull_request"
+          github.event_name == 'release'
+        uses: pypa/gh-action-pypi-publish@release/v1
+        with:
+          password: ${{ secrets.pypi_password }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.github/workflows/tox.yml 
new/pytest-plus-0.4.0/.github/workflows/tox.yml
--- old/pytest-plus-0.2/.github/workflows/tox.yml       1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/.github/workflows/tox.yml     2022-12-24 
11:27:01.000000000 +0100
@@ -0,0 +1,141 @@
+---
+name: tox
+on:
+  create: # is used for publishing to PyPI and TestPyPI
+    tags: # any tag regardless of its name, no branches
+      - "**"
+  push: # only publishes pushes to the main branch to TestPyPI
+    branches: # any integration branch but not tag
+      - "main"
+  pull_request:
+    branches:
+      - "main"
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || 
github.sha }}
+  cancel-in-progress: true
+
+env:
+  FORCE_COLOR: 1 # tox, pytest, ansible-lint
+  PY_COLORS: 1
+
+jobs:
+  pre:
+    name: pre
+    runs-on: ubuntu-22.04
+    outputs:
+      matrix: ${{ steps.generate_matrix.outputs.matrix }}
+    steps:
+      - name: Determine matrix
+        id: generate_matrix
+        uses: coactions/matrix@main
+        with:
+          min_python: "3.9"
+          other_names: |
+            lint
+            pkg
+            devel
+  build:
+    name: ${{ matrix.name || matrix.passed_name || '?' }}
+    needs: pre
+    runs-on: ${{ matrix.os || 'ubuntu-22.04' }}
+    defaults:
+      run:
+        shell: ${{ matrix.shell || 'bash'}}
+    strategy:
+      fail-fast: false
+      matrix: ${{ fromJson(needs.pre.outputs.matrix) }}
+    env:
+      PYTEST_REQPASS: 1
+
+    steps:
+      - uses: actions/checkout@v3
+        with:
+          fetch-depth: 0 # needed by setuptools-scm
+
+      - name: Set caches
+        if: "${{ contains(matrix.passed_name, 'lint') }}"
+        uses: actions/cache@v3
+        with:
+          path: ~/.cache/pre-commit
+          key: ${{ matrix.name || matrix.passed_name }}-${{ 
hashFiles('.pre-commit-config.yaml') }}
+
+      - name: Set up Python ${{ matrix.python_version || '3.9' }}
+        uses: actions/setup-python@v4
+        with:
+          cache: pip
+          python-version: ${{ matrix.python_version || '3.9' }}
+
+      - name: Install tox
+        run: |
+          python3 -m pip install --upgrade pip
+          python3 -m pip install --upgrade "tox>=4.0.8"
+
+      - name: Log installed dists
+        run: python3 -m pip freeze --all
+
+      - name: Initialize tox envs ${{ matrix.passed_env }}
+        run: python3 -m tox --notest --skip-missing-interpreters false -vv -e 
${{ matrix.passed_name }}
+        timeout-minutes: 5 # average is under 1, but macos can be over 3
+
+      # sequential run improves browsing experience (almost no speed impact)
+      - name: tox -e ${{ matrix.passed_name }}
+        run: python3 -m tox -e ${{ matrix.passed_name }}
+
+      - name: Combine coverage data
+        if: ${{ startsWith(matrix.passed_name, 'py') }}
+        # produce a single .coverage file at repo root
+        run: tox -e coverage
+
+      - name: Upload coverage data
+        if: ${{ startsWith(matrix.passed_name, 'py') }}
+        uses: codecov/codecov-action@v3
+        with:
+          name: ${{ matrix.passed_name }}
+          fail_ci_if_error: false # see 
https://github.com/codecov/codecov-action/issues/598
+          token: ${{ secrets.CODECOV_TOKEN }}
+          verbose: true # optional (default = false)
+
+      - name: Archive logs
+        uses: actions/upload-artifact@v3
+        with:
+          name: logs.zip
+          path: .tox/**/log/
+        # https://github.com/actions/upload-artifact/issues/123
+        continue-on-error: true
+
+      - name: Report failure if git reports dirty status
+        run: |
+          if [[ -n $(git status -s) ]]; then
+            # shellcheck disable=SC2016
+            echo -n '::error file=git-status::'
+            printf '### Failed as git reported modified and/or untracked 
files\n```\n%s\n```\n' "$(git status -s)" | tee -a "$GITHUB_STEP_SUMMARY"
+            exit 99
+          fi
+        # https://github.com/actions/toolkit/issues/193
+
+  check: # This job does nothing and is only used for the branch protection
+    if: always()
+    permissions:
+      pull-requests: write # allow codenotify to comment on pull-request
+
+    needs:
+      - build
+
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Decide whether the needed jobs succeeded or failed
+        uses: re-actors/alls-green@release/v1
+        with:
+          jobs: ${{ toJSON(needs) }}
+
+      - name: Check out src from Git
+        uses: actions/checkout@v3
+
+      - name: Notify repository owners about lint change affecting them
+        uses: sourcegraph/codenotify@v0.6.4
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        # https://github.com/sourcegraph/codenotify/issues/19
+        continue-on-error: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.gitignore 
new/pytest-plus-0.4.0/.gitignore
--- old/pytest-plus-0.2/.gitignore      2020-03-18 16:41:32.000000000 +0100
+++ new/pytest-plus-0.4.0/.gitignore    2022-12-24 11:27:01.000000000 +0100
@@ -127,3 +127,4 @@
 
 # Pyre type checker
 .pyre/
+src/pytest_plus/_version.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.pre-commit-config.yaml 
new/pytest-plus-0.4.0/.pre-commit-config.yaml
--- old/pytest-plus-0.2/.pre-commit-config.yaml 2020-03-19 12:20:42.000000000 
+0100
+++ new/pytest-plus-0.4.0/.pre-commit-config.yaml       2022-12-24 
11:27:01.000000000 +0100
@@ -1,20 +1,32 @@
 ---
+ci:
+  exclude:
+    - pip-tools
 repos:
+  - repo: meta
+    hooks:
+      - id: check-useless-excludes
+  - repo: https://github.com/pre-commit/mirrors-prettier
+    # keep it before yamllint
+    rev: v3.0.0-alpha.4
+    hooks:
+      - id: prettier
+        always_run: true
+        additional_dependencies:
+          - prettier
+          - prettier-plugin-toml
+          - prettier-plugin-sort-json
   - repo: https://github.com/PyCQA/doc8.git
-    rev: 0.8.1rc3
+    rev: v1.1.0
     hooks:
       - id: doc8
-  - repo: https://github.com/markdownlint/markdownlint
-    rev: v0.9.0
-    hooks:
-      - id: markdownlint
   - repo: https://github.com/python/black
-    rev: 19.10b0
+    rev: 22.12.0
     hooks:
       - id: black
         language_version: python3
   - repo: https://github.com/pre-commit/pre-commit-hooks.git
-    rev: v2.5.0
+    rev: v4.4.0
     hooks:
       - id: end-of-file-fixer
       - id: trailing-whitespace
@@ -23,21 +35,21 @@
       - id: check-executables-have-shebangs
       - id: check-merge-conflict
       - id: debug-statements
-  - repo: https://gitlab.com/pycqa/flake8.git
-    rev: 3.7.9
+  - repo: https://github.com/pycqa/flake8.git
+    rev: 6.0.0
     hooks:
       - id: flake8
         additional_dependencies:
           - flake8-black
   - repo: https://github.com/adrienverge/yamllint.git
-    rev: v1.20.0
+    rev: v1.28.0
     hooks:
       - id: yamllint
         files: \.(yaml|yml)$
         types: [file, yaml]
         entry: yamllint --strict
   - repo: https://github.com/codespell-project/codespell.git
-    rev: v1.16.0
+    rev: v2.2.2
     hooks:
       - id: codespell
         name: codespell
@@ -48,3 +60,23 @@
         args: []
         require_serial: false
         additional_dependencies: []
+  - repo: https://github.com/jazzband/pip-tools
+    rev: 6.12.1
+    hooks:
+      - id: pip-compile
+        entry: pip-compile --resolver=backtracking -q --no-annotate 
--output-file=requirements.txt pyproject.toml --extra test --strip-extras
+        language: python
+        files: ^(requirements\.txt|pyproject\.toml)$
+        alias: deps
+        language_version: "3.9" # minimal we support officially
+        additional_dependencies:
+          - pip>=22.3.1
+      - id: pip-compile
+        entry: pip-compile --resolver=backtracking -q --no-annotate 
--output-file=requirements.txt pyproject.toml --extra test --strip-extras 
--upgrade
+        language: python
+        files: ^(requirements\.txt|pyproject\.toml)$
+        alias: up
+        stages: [manual]
+        language_version: "3.9" # minimal we support officially
+        additional_dependencies:
+          - pip>=22.3.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/.yamllint 
new/pytest-plus-0.4.0/.yamllint
--- old/pytest-plus-0.2/.yamllint       2020-03-18 16:59:08.000000000 +0100
+++ new/pytest-plus-0.4.0/.yamllint     2022-12-24 11:27:01.000000000 +0100
@@ -2,6 +2,8 @@
 extends: default
 
 rules:
+  comments:
+    min-spaces-from-content: 1
   document-start: disable
   line-length:
     max: 999
@@ -10,5 +12,8 @@
   key-duplicates: enable
   truthy:
     allowed-values: ['true', 'false', 'on']
+  indentation:
+    level: error
+    indent-sequences: consistent
 ignore: |
   .tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/MANIFEST.in 
new/pytest-plus-0.4.0/MANIFEST.in
--- old/pytest-plus-0.2/MANIFEST.in     2019-06-18 13:01:50.000000000 +0200
+++ new/pytest-plus-0.4.0/MANIFEST.in   1970-01-01 01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-include LICENSE
-include README.rst
-
-recursive-exclude * __pycache__
-recursive-exclude * *.py[co]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/PKG-INFO 
new/pytest-plus-0.4.0/PKG-INFO
--- old/pytest-plus-0.2/PKG-INFO        2020-03-19 12:33:09.000000000 +0100
+++ new/pytest-plus-0.4.0/PKG-INFO      2022-12-24 11:27:15.366645800 +0100
@@ -1,55 +1,14 @@
 Metadata-Version: 2.1
 Name: pytest-plus
-Version: 0.2
+Version: 0.4.0
 Summary: PyTest Plus Plugin :: extends pytest functionality
-Home-page: https://github.com/pycontribs/pytest-plus
-Author: Sorin Sbarnea
-Author-email: sorin.sbar...@gmail.com
-Maintainer: Sorin Sbarnea
-Maintainer-email: sorin.sbar...@gmail.com
+Author-email: Sorin Sbarnea <sorin.sbar...@gmail.com>
+Maintainer-email: Sorin Sbarnea <sorin.sbar...@gmail.com>
 License: MIT
-Project-URL: Bug Tracker, https://github.com/pycontribs/pytest-plus/issues
-Project-URL: Release Management, 
https://github.com/pycontribs/pytest-plus/releases
-Project-URL: Source Code, https://github.com/pycontribs/pytest-plus
-Description: # PyTest Plus Plugin :: extends pytest functionality
-        
-        [![PyPI 
version](https://img.shields.io/pypi/v/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
-        [![Python 
versions](https://img.shields.io/pypi/pyversions/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
-        [![Python Black Code 
Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
-        
-        This plugin aims to be used to host multiple pytest extensions that 
meet the
-        following criteria:
-        
-        * Keep py27 compatibility for the moment
-        * Downgrade gracefully, meaning that if the plugin is removed, you 
will still
-          be able to run pytest
-        
-        ## PYTEST_REQPASS
-        
-        If you define environment variable `PYTEST_REQPASS=123` and at the end 
of the
-        testing the number of passed tests is
-        not exactly 123, pytest will return exit code 1.
-        
-        This feature is aimed for CI usage in order to prevent accidental 
skipping of
-        some tests. We do expect users to define this variable within their 
own CI job
-        definitions.  The number of tests executed is likely to be dependent 
on the CI
-        job.
-        
-        We discourage defining this inside places like `tox.ini` because when a
-        developer runs tests, they are likely to endup running a different 
number of
-        tests. Also, this feature makes no sense if you try to mention a 
specific test.
-        
-        ## Links
-        
-        * [MIT](http://opensource.org/licenses/MIT)
-        * [file an issue](https://github.com/pycontribs/pytest-plus/issues)
-        * [pytest](https://github.com/pytest-dev/pytest)
-        * [tox](https://tox.readthedocs.io/en/latest/)
-        * [pip](https://pypi.org/project/pip/)
-        * [PyPI](https://pypi.org/project)
-        
+Project-URL: homepage, https://github.com/pytest-dev/pytest-plus
+Project-URL: repository, https://github.com/pytest-dev/pytest-plus
+Project-URL: changelog, https://github.com/pytest-dev/pytest-plus/releases
 Keywords: testing,pytest,plugin
-Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Console
 Classifier: Framework :: Pytest
@@ -59,18 +18,55 @@
 Classifier: License :: OSI Approved :: MIT License
 Classifier: Natural Language :: English
 Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python
+Classifier: Topic :: Software Development :: Quality Assurance
 Classifier: Topic :: Software Development :: Testing
 Classifier: Topic :: System :: Systems Administration
 Classifier: Topic :: Utilities
-Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7
+Requires-Python: >=3.9
 Description-Content-Type: text/markdown
 Provides-Extra: test
+License-File: LICENSE
+
+# PyTest Plus Plugin :: extends pytest functionality
+
+[![PyPI 
version](https://img.shields.io/pypi/v/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
+[![Python 
versions](https://img.shields.io/pypi/pyversions/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
+![CI](https://github.com/pytest-dev/pytest-plus/workflows/tox/badge.svg)
+[![Python Black Code 
Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
+
+This plugin aims to be used to host multiple basic pytest extensions that meet
+the following criteria:
+
+- Downgrade gracefully, meaning that if the plugin is removed, you will still
+  be able to run pytest
+
+## PYTEST_REQPASS
+
+If you define environment variable `PYTEST_REQPASS=123` and at the end of the
+testing the number of passed tests is
+not exactly 123, pytest will return exit code 1.
+
+This feature is aimed for CI usage in order to prevent accidental skipping of
+some tests. We do expect users to define this variable within their own CI job
+definitions. The number of tests executed is likely to be dependent on the CI
+job.
+
+We discourage defining this inside places like `tox.ini` because when a
+developer runs tests, they are likely to endup running a different number of
+tests. Also, this feature makes no sense if you try to mention a specific test.
+
+## Links
+
+- [MIT](http://opensource.org/licenses/MIT)
+- [file an issue](https://github.com/pytest-dev/pytest-plus/issues)
+- [pytest](https://github.com/pytest-dev/pytest)
+- [tox](https://tox.readthedocs.io/en/latest/)
+- [pip](https://pypi.org/project/pip/)
+- [PyPI](https://pypi.org/project)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/README.md 
new/pytest-plus-0.4.0/README.md
--- old/pytest-plus-0.2/README.md       2020-03-19 12:22:20.000000000 +0100
+++ new/pytest-plus-0.4.0/README.md     2022-12-24 11:27:01.000000000 +0100
@@ -2,13 +2,13 @@
 
 [![PyPI 
version](https://img.shields.io/pypi/v/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
 [![Python 
versions](https://img.shields.io/pypi/pyversions/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
+![CI](https://github.com/pytest-dev/pytest-plus/workflows/tox/badge.svg)
 [![Python Black Code 
Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
 
-This plugin aims to be used to host multiple pytest extensions that meet the
-following criteria:
+This plugin aims to be used to host multiple basic pytest extensions that meet
+the following criteria:
 
-* Keep py27 compatibility for the moment
-* Downgrade gracefully, meaning that if the plugin is removed, you will still
+- Downgrade gracefully, meaning that if the plugin is removed, you will still
   be able to run pytest
 
 ## PYTEST_REQPASS
@@ -19,7 +19,7 @@
 
 This feature is aimed for CI usage in order to prevent accidental skipping of
 some tests. We do expect users to define this variable within their own CI job
-definitions.  The number of tests executed is likely to be dependent on the CI
+definitions. The number of tests executed is likely to be dependent on the CI
 job.
 
 We discourage defining this inside places like `tox.ini` because when a
@@ -28,9 +28,9 @@
 
 ## Links
 
-* [MIT](http://opensource.org/licenses/MIT)
-* [file an issue](https://github.com/pycontribs/pytest-plus/issues)
-* [pytest](https://github.com/pytest-dev/pytest)
-* [tox](https://tox.readthedocs.io/en/latest/)
-* [pip](https://pypi.org/project/pip/)
-* [PyPI](https://pypi.org/project)
+- [MIT](http://opensource.org/licenses/MIT)
+- [file an issue](https://github.com/pytest-dev/pytest-plus/issues)
+- [pytest](https://github.com/pytest-dev/pytest)
+- [tox](https://tox.readthedocs.io/en/latest/)
+- [pip](https://pypi.org/project/pip/)
+- [PyPI](https://pypi.org/project)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/pyproject.toml 
new/pytest-plus-0.4.0/pyproject.toml
--- old/pytest-plus-0.2/pyproject.toml  2020-03-14 12:38:36.000000000 +0100
+++ new/pytest-plus-0.4.0/pyproject.toml        2022-12-24 11:27:01.000000000 
+0100
@@ -1,8 +1,62 @@
 [build-system]
 requires = [
-  "setuptools >= 41.0.0",
-  "setuptools_scm >= 1.15.0",
-  "setuptools_scm_git_archive >= 1.0",
-  "wheel",
+  "setuptools >= 63.0.0", # required by pyproject+setuptools_scm integration
+  "setuptools_scm[toml] >= 7.0.5", # required for "no-local-version" scheme
+
 ]
 build-backend = "setuptools.build_meta"
+
+[project]
+# https://peps.python.org/pep-0621/#readme
+requires-python = ">=3.9"
+dynamic = ["version"]
+name = "pytest-plus"
+description = "PyTest Plus Plugin :: extends pytest functionality"
+readme = "README.md"
+authors = [{ "name" = "Sorin Sbarnea", "email" = "sorin.sbar...@gmail.com" }]
+maintainers = [
+  { "name" = "Sorin Sbarnea", "email" = "sorin.sbar...@gmail.com" }
+]
+license = { text = "MIT" }
+classifiers = [
+  "Development Status :: 5 - Production/Stable",
+  "Environment :: Console",
+  "Framework :: Pytest",
+  "Intended Audience :: Developers",
+  "Intended Audience :: Information Technology",
+  "Intended Audience :: System Administrators",
+  "License :: OSI Approved :: MIT License",
+  "Natural Language :: English",
+  "Operating System :: OS Independent",
+  "Programming Language :: Python :: 3 :: Only",
+  "Programming Language :: Python :: 3",
+  "Programming Language :: Python :: 3.10",
+  "Programming Language :: Python :: 3.11",
+  "Programming Language :: Python :: 3.12",
+  "Programming Language :: Python :: 3.9",
+  "Programming Language :: Python",
+  "Topic :: Software Development :: Quality Assurance",
+  "Topic :: Software Development :: Testing",
+  "Topic :: System :: Systems Administration",
+  "Topic :: Utilities",
+]
+keywords = ["testing", "pytest", "plugin"]
+dependencies = ["pytest>=6.0.1"]
+
+[project.urls]
+homepage = "https://github.com/pytest-dev/pytest-plus";
+repository = "https://github.com/pytest-dev/pytest-plus";
+changelog = "https://github.com/pytest-dev/pytest-plus/releases";
+
+[project.optional-dependencies]
+test = ["coverage>=7.0.0", "pytest-html"]
+
+[project.entry-points.pytest11]
+plus = "pytest_plus"
+
+[tool.pytest.ini_options]
+addopts = "-p no:flaky"
+
+[tool.setuptools_scm]
+local_scheme = "no-local-version"
+write_to = "src/pytest_plus/_version.py"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/pytest.ini 
new/pytest-plus-0.4.0/pytest.ini
--- old/pytest-plus-0.2/pytest.ini      2020-01-15 21:06:41.000000000 +0100
+++ new/pytest-plus-0.4.0/pytest.ini    1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-[pytest]
-addopts=-p no:flaky
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/pytest_plus/__init__.py 
new/pytest-plus-0.4.0/pytest_plus/__init__.py
--- old/pytest-plus-0.2/pytest_plus/__init__.py 2020-03-19 11:31:09.000000000 
+0100
+++ new/pytest-plus-0.4.0/pytest_plus/__init__.py       1970-01-01 
01:00:00.000000000 +0100
@@ -1,31 +0,0 @@
-"""PyTest Config File."""
-
-from __future__ import print_function
-import os
-import pytest
-import sys
-
-
-@pytest.hookimpl(hookwrapper=True)
-def pytest_terminal_summary(terminalreporter, exitstatus, config):
-    """Assure passed test match PYTEST_REQPASS value.
-
-    Assures that pytest returns an error code when the number of expected 
passed
-    tests does not match the PYTEST_REQPASS value.  When not defined or zero
-    that functionality is ignored.
-    """
-    yield
-    req_passed = int(os.environ.get("PYTEST_REQPASS", "0"))
-    if req_passed and not config.option.collectonly:
-        passed = 0
-        for x in terminalreporter.stats.get("passed", []):
-            if x.when == "call" and x.outcome == "passed":
-                passed += 1
-        if passed != req_passed:
-            terminalreporter.write_line(
-                "ERROR: {} passed test but expected number was {}. "
-                " If that is expected please update PYTEST_REQPASS value for 
the failed job in zuul.d/layout.yaml file.".format(
-                    passed, req_passed
-                )
-            )
-            sys.exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/pytest_plus.egg-info/PKG-INFO 
new/pytest-plus-0.4.0/pytest_plus.egg-info/PKG-INFO
--- old/pytest-plus-0.2/pytest_plus.egg-info/PKG-INFO   2020-03-19 
12:33:09.000000000 +0100
+++ new/pytest-plus-0.4.0/pytest_plus.egg-info/PKG-INFO 1970-01-01 
01:00:00.000000000 +0100
@@ -1,76 +0,0 @@
-Metadata-Version: 2.1
-Name: pytest-plus
-Version: 0.2
-Summary: PyTest Plus Plugin :: extends pytest functionality
-Home-page: https://github.com/pycontribs/pytest-plus
-Author: Sorin Sbarnea
-Author-email: sorin.sbar...@gmail.com
-Maintainer: Sorin Sbarnea
-Maintainer-email: sorin.sbar...@gmail.com
-License: MIT
-Project-URL: Bug Tracker, https://github.com/pycontribs/pytest-plus/issues
-Project-URL: Release Management, 
https://github.com/pycontribs/pytest-plus/releases
-Project-URL: Source Code, https://github.com/pycontribs/pytest-plus
-Description: # PyTest Plus Plugin :: extends pytest functionality
-        
-        [![PyPI 
version](https://img.shields.io/pypi/v/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
-        [![Python 
versions](https://img.shields.io/pypi/pyversions/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
-        [![Python Black Code 
Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
-        
-        This plugin aims to be used to host multiple pytest extensions that 
meet the
-        following criteria:
-        
-        * Keep py27 compatibility for the moment
-        * Downgrade gracefully, meaning that if the plugin is removed, you 
will still
-          be able to run pytest
-        
-        ## PYTEST_REQPASS
-        
-        If you define environment variable `PYTEST_REQPASS=123` and at the end 
of the
-        testing the number of passed tests is
-        not exactly 123, pytest will return exit code 1.
-        
-        This feature is aimed for CI usage in order to prevent accidental 
skipping of
-        some tests. We do expect users to define this variable within their 
own CI job
-        definitions.  The number of tests executed is likely to be dependent 
on the CI
-        job.
-        
-        We discourage defining this inside places like `tox.ini` because when a
-        developer runs tests, they are likely to endup running a different 
number of
-        tests. Also, this feature makes no sense if you try to mention a 
specific test.
-        
-        ## Links
-        
-        * [MIT](http://opensource.org/licenses/MIT)
-        * [file an issue](https://github.com/pycontribs/pytest-plus/issues)
-        * [pytest](https://github.com/pytest-dev/pytest)
-        * [tox](https://tox.readthedocs.io/en/latest/)
-        * [pip](https://pypi.org/project/pip/)
-        * [PyPI](https://pypi.org/project)
-        
-Keywords: testing,pytest,plugin
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Environment :: Console
-Classifier: Framework :: Pytest
-Classifier: Intended Audience :: Developers
-Classifier: Intended Audience :: Information Technology
-Classifier: Intended Audience :: System Administrators
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Natural Language :: English
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
-Classifier: Topic :: Software Development :: Testing
-Classifier: Topic :: System :: Systems Administration
-Classifier: Topic :: Utilities
-Requires-Python: !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7
-Description-Content-Type: text/markdown
-Provides-Extra: test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/pytest_plus.egg-info/SOURCES.txt 
new/pytest-plus-0.4.0/pytest_plus.egg-info/SOURCES.txt
--- old/pytest-plus-0.2/pytest_plus.egg-info/SOURCES.txt        2020-03-19 
12:33:09.000000000 +0100
+++ new/pytest-plus-0.4.0/pytest_plus.egg-info/SOURCES.txt      1970-01-01 
01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-.flake8
-.gitignore
-.pre-commit-config.yaml
-.yamllint
-LICENSE
-MANIFEST.in
-README.md
-pyproject.toml
-pytest.ini
-setup.cfg
-setup.py
-tox.ini
-.github/FUNDING.yml
-.github/labels.yml
-.github/release-drafter.yml
-.github/workflows/main.yml
-pytest_plus/__init__.py
-pytest_plus.egg-info/PKG-INFO
-pytest_plus.egg-info/SOURCES.txt
-pytest_plus.egg-info/dependency_links.txt
-pytest_plus.egg-info/entry_points.txt
-pytest_plus.egg-info/not-zip-safe
-pytest_plus.egg-info/requires.txt
-pytest_plus.egg-info/top_level.txt
-tests/test_plugin.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-plus-0.2/pytest_plus.egg-info/dependency_links.txt 
new/pytest-plus-0.4.0/pytest_plus.egg-info/dependency_links.txt
--- old/pytest-plus-0.2/pytest_plus.egg-info/dependency_links.txt       
2020-03-19 12:33:09.000000000 +0100
+++ new/pytest-plus-0.4.0/pytest_plus.egg-info/dependency_links.txt     
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-plus-0.2/pytest_plus.egg-info/entry_points.txt 
new/pytest-plus-0.4.0/pytest_plus.egg-info/entry_points.txt
--- old/pytest-plus-0.2/pytest_plus.egg-info/entry_points.txt   2020-03-19 
12:33:09.000000000 +0100
+++ new/pytest-plus-0.4.0/pytest_plus.egg-info/entry_points.txt 1970-01-01 
01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-[pytest11]
-plus = pytest_plus
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/pytest_plus.egg-info/not-zip-safe 
new/pytest-plus-0.4.0/pytest_plus.egg-info/not-zip-safe
--- old/pytest-plus-0.2/pytest_plus.egg-info/not-zip-safe       2020-03-18 
16:52:30.000000000 +0100
+++ new/pytest-plus-0.4.0/pytest_plus.egg-info/not-zip-safe     1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/pytest_plus.egg-info/requires.txt 
new/pytest-plus-0.4.0/pytest_plus.egg-info/requires.txt
--- old/pytest-plus-0.2/pytest_plus.egg-info/requires.txt       2020-03-19 
12:33:09.000000000 +0100
+++ new/pytest-plus-0.4.0/pytest_plus.egg-info/requires.txt     1970-01-01 
01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-pytest>=3.50
-
-[:python_version < "3.0"]
-more_itertools<6,>=5
-
-[:python_version >= "3.0"]
-more_itertools>=6
-
-[test]
-pytest-html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/pytest_plus.egg-info/top_level.txt 
new/pytest-plus-0.4.0/pytest_plus.egg-info/top_level.txt
--- old/pytest-plus-0.2/pytest_plus.egg-info/top_level.txt      2020-03-19 
12:33:09.000000000 +0100
+++ new/pytest-plus-0.4.0/pytest_plus.egg-info/top_level.txt    1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-pytest_plus
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/requirements.txt 
new/pytest-plus-0.4.0/requirements.txt
--- old/pytest-plus-0.2/requirements.txt        1970-01-01 01:00:00.000000000 
+0100
+++ new/pytest-plus-0.4.0/requirements.txt      2022-12-24 11:27:01.000000000 
+0100
@@ -0,0 +1,17 @@
+#
+# This file is autogenerated by pip-compile with Python 3.9
+# by the following command:
+#
+#    pip-compile --extra=test --no-annotate --output-file=requirements.txt 
--resolver=backtracking --strip-extras pyproject.toml
+#
+attrs==22.1.0
+coverage==7.0.0
+exceptiongroup==1.0.4
+iniconfig==1.1.1
+packaging==22.0
+pluggy==1.0.0
+py==1.11.0
+pytest==7.2.0
+pytest-html==3.2.0
+pytest-metadata==2.0.4
+tomli==2.0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/setup.cfg 
new/pytest-plus-0.4.0/setup.cfg
--- old/pytest-plus-0.2/setup.cfg       2020-03-19 12:33:09.000000000 +0100
+++ new/pytest-plus-0.4.0/setup.cfg     2022-12-24 11:27:15.366645800 +0100
@@ -1,77 +1,3 @@
-[aliases]
-dists = clean --all sdist bdist_wheel
-
-[bdist_wheel]
-universal = 1
-
-[metadata]
-name = pytest-plus
-url = https://github.com/pycontribs/pytest-plus
-project_urls = 
-       Bug Tracker = https://github.com/pycontribs/pytest-plus/issues
-       Release Management = https://github.com/pycontribs/pytest-plus/releases
-       Source Code = https://github.com/pycontribs/pytest-plus
-description = PyTest Plus Plugin :: extends pytest functionality
-long_description = file: README.md
-long_description_content_type = text/markdown
-author = Sorin Sbarnea
-author_email = sorin.sbar...@gmail.com
-maintainer = Sorin Sbarnea
-maintainer_email = sorin.sbar...@gmail.com
-license = MIT
-license_file = LICENSE
-classifiers = 
-       Development Status :: 5 - Production/Stable
-       Environment :: Console
-       Framework :: Pytest
-       Intended Audience :: Developers
-       Intended Audience :: Information Technology
-       Intended Audience :: System Administrators
-       License :: OSI Approved :: MIT License
-       Natural Language :: English
-       Operating System :: OS Independent
-       Programming Language :: Python :: 2
-       Programming Language :: Python :: 2.7
-       Programming Language :: Python :: 3
-       Programming Language :: Python :: 3.5
-       Programming Language :: Python :: 3.6
-       Programming Language :: Python :: 3.7
-       Programming Language :: Python :: 3.8
-       Programming Language :: Python :: Implementation :: CPython
-       Programming Language :: Python :: Implementation :: PyPy
-       Topic :: Software Development :: Testing
-       Topic :: System :: Systems Administration
-       Topic :: Utilities
-keywords = 
-       testing
-       pytest
-       plugin
-
-[options]
-use_scm_version = True
-python_requires = >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*
-packages = find:
-include_package_data = True
-zip_safe = False
-setup_requires = 
-       setuptools_scm >= 1.15.0
-       setuptools_scm_git_archive >= 1.0
-install_requires = 
-       pytest >= 3.50
-       more_itertools >= 5, < 6; python_version<"3.0"
-       more_itertools >= 6; python_version>="3.0"
-
-[options.extras_require]
-test = 
-       pytest-html
-
-[options.entry_points]
-pytest11 = 
-       plus = pytest_plus
-
-[options.packages.find]
-where = .
-
 [egg_info]
 tag_build = 
 tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/setup.py 
new/pytest-plus-0.4.0/setup.py
--- old/pytest-plus-0.2/setup.py        2020-03-17 20:28:12.000000000 +0100
+++ new/pytest-plus-0.4.0/setup.py      1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-# !/usr/bin/env python
-import setuptools
-
-
-if __name__ == "__main__":
-    setuptools.setup(use_scm_version=True, setup_requires=["setuptools_scm"])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/src/pytest_plus/__init__.py 
new/pytest-plus-0.4.0/src/pytest_plus/__init__.py
--- old/pytest-plus-0.2/src/pytest_plus/__init__.py     1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/src/pytest_plus/__init__.py   2022-12-24 
11:27:01.000000000 +0100
@@ -0,0 +1,31 @@
+"""PyTest Config File."""
+
+from __future__ import print_function
+import os
+import pytest
+import sys
+
+
+@pytest.hookimpl(hookwrapper=True)
+def pytest_terminal_summary(terminalreporter, exitstatus, config):
+    """Assure passed test match PYTEST_REQPASS value.
+
+    Assures that pytest returns an error code when the number of expected 
passed
+    tests does not match the PYTEST_REQPASS value.  When not defined or zero
+    that functionality is ignored.
+    """
+    yield
+    req_passed = int(os.environ.get("PYTEST_REQPASS", "0"))
+    if req_passed and not config.option.collectonly:
+        passed = 0
+        for x in terminalreporter.stats.get("passed", []):
+            if x.when == "call" and x.outcome == "passed":
+                passed += 1
+        if passed != req_passed:
+            terminalreporter.write_line(
+                "ERROR: {} passed test but expected number was {}. "
+                " If that is expected please update PYTEST_REQPASS value for 
the failed job in zuul.d/layout.yaml file.".format(
+                    passed, req_passed
+                )
+            )
+            sys.exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/src/pytest_plus/_version.py 
new/pytest-plus-0.4.0/src/pytest_plus/_version.py
--- old/pytest-plus-0.2/src/pytest_plus/_version.py     1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/src/pytest_plus/_version.py   2022-12-24 
11:27:15.000000000 +0100
@@ -0,0 +1,4 @@
+# file generated by setuptools_scm
+# don't change, don't track in version control
+__version__ = version = '0.4.0'
+__version_tuple__ = version_tuple = (0, 4, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/src/pytest_plus.egg-info/PKG-INFO 
new/pytest-plus-0.4.0/src/pytest_plus.egg-info/PKG-INFO
--- old/pytest-plus-0.2/src/pytest_plus.egg-info/PKG-INFO       1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/src/pytest_plus.egg-info/PKG-INFO     2022-12-24 
11:27:15.000000000 +0100
@@ -0,0 +1,72 @@
+Metadata-Version: 2.1
+Name: pytest-plus
+Version: 0.4.0
+Summary: PyTest Plus Plugin :: extends pytest functionality
+Author-email: Sorin Sbarnea <sorin.sbar...@gmail.com>
+Maintainer-email: Sorin Sbarnea <sorin.sbar...@gmail.com>
+License: MIT
+Project-URL: homepage, https://github.com/pytest-dev/pytest-plus
+Project-URL: repository, https://github.com/pytest-dev/pytest-plus
+Project-URL: changelog, https://github.com/pytest-dev/pytest-plus/releases
+Keywords: testing,pytest,plugin
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Console
+Classifier: Framework :: Pytest
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Information Technology
+Classifier: Intended Audience :: System Administrators
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Natural Language :: English
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python
+Classifier: Topic :: Software Development :: Quality Assurance
+Classifier: Topic :: Software Development :: Testing
+Classifier: Topic :: System :: Systems Administration
+Classifier: Topic :: Utilities
+Requires-Python: >=3.9
+Description-Content-Type: text/markdown
+Provides-Extra: test
+License-File: LICENSE
+
+# PyTest Plus Plugin :: extends pytest functionality
+
+[![PyPI 
version](https://img.shields.io/pypi/v/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
+[![Python 
versions](https://img.shields.io/pypi/pyversions/pytest-plus.svg)](https://pypi.org/project/pytest-plus)
+![CI](https://github.com/pytest-dev/pytest-plus/workflows/tox/badge.svg)
+[![Python Black Code 
Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
+
+This plugin aims to be used to host multiple basic pytest extensions that meet
+the following criteria:
+
+- Downgrade gracefully, meaning that if the plugin is removed, you will still
+  be able to run pytest
+
+## PYTEST_REQPASS
+
+If you define environment variable `PYTEST_REQPASS=123` and at the end of the
+testing the number of passed tests is
+not exactly 123, pytest will return exit code 1.
+
+This feature is aimed for CI usage in order to prevent accidental skipping of
+some tests. We do expect users to define this variable within their own CI job
+definitions. The number of tests executed is likely to be dependent on the CI
+job.
+
+We discourage defining this inside places like `tox.ini` because when a
+developer runs tests, they are likely to endup running a different number of
+tests. Also, this feature makes no sense if you try to mention a specific test.
+
+## Links
+
+- [MIT](http://opensource.org/licenses/MIT)
+- [file an issue](https://github.com/pytest-dev/pytest-plus/issues)
+- [pytest](https://github.com/pytest-dev/pytest)
+- [tox](https://tox.readthedocs.io/en/latest/)
+- [pip](https://pypi.org/project/pip/)
+- [PyPI](https://pypi.org/project)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/src/pytest_plus.egg-info/SOURCES.txt 
new/pytest-plus-0.4.0/src/pytest_plus.egg-info/SOURCES.txt
--- old/pytest-plus-0.2/src/pytest_plus.egg-info/SOURCES.txt    1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/src/pytest_plus.egg-info/SOURCES.txt  2022-12-24 
11:27:15.000000000 +0100
@@ -0,0 +1,25 @@
+.flake8
+.gitignore
+.pre-commit-config.yaml
+.yamllint
+LICENSE
+README.md
+pyproject.toml
+requirements.txt
+tox.ini
+.github/FUNDING.yml
+.github/dependabot.yml
+.github/release-drafter.yml
+.github/workflows/ack.yml
+.github/workflows/push.yml
+.github/workflows/release.yml
+.github/workflows/tox.yml
+src/pytest_plus/__init__.py
+src/pytest_plus/_version.py
+src/pytest_plus.egg-info/PKG-INFO
+src/pytest_plus.egg-info/SOURCES.txt
+src/pytest_plus.egg-info/dependency_links.txt
+src/pytest_plus.egg-info/entry_points.txt
+src/pytest_plus.egg-info/requires.txt
+src/pytest_plus.egg-info/top_level.txt
+tests/test_plugin.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-plus-0.2/src/pytest_plus.egg-info/dependency_links.txt 
new/pytest-plus-0.4.0/src/pytest_plus.egg-info/dependency_links.txt
--- old/pytest-plus-0.2/src/pytest_plus.egg-info/dependency_links.txt   
1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/src/pytest_plus.egg-info/dependency_links.txt 
2022-12-24 11:27:15.000000000 +0100
@@ -0,0 +1 @@
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-plus-0.2/src/pytest_plus.egg-info/entry_points.txt 
new/pytest-plus-0.4.0/src/pytest_plus.egg-info/entry_points.txt
--- old/pytest-plus-0.2/src/pytest_plus.egg-info/entry_points.txt       
1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/src/pytest_plus.egg-info/entry_points.txt     
2022-12-24 11:27:15.000000000 +0100
@@ -0,0 +1,2 @@
+[pytest11]
+plus = pytest_plus
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-plus-0.2/src/pytest_plus.egg-info/requires.txt 
new/pytest-plus-0.4.0/src/pytest_plus.egg-info/requires.txt
--- old/pytest-plus-0.2/src/pytest_plus.egg-info/requires.txt   1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/src/pytest_plus.egg-info/requires.txt 2022-12-24 
11:27:15.000000000 +0100
@@ -0,0 +1,5 @@
+pytest>=6.0.1
+
+[test]
+coverage>=7.0.0
+pytest-html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pytest-plus-0.2/src/pytest_plus.egg-info/top_level.txt 
new/pytest-plus-0.4.0/src/pytest_plus.egg-info/top_level.txt
--- old/pytest-plus-0.2/src/pytest_plus.egg-info/top_level.txt  1970-01-01 
01:00:00.000000000 +0100
+++ new/pytest-plus-0.4.0/src/pytest_plus.egg-info/top_level.txt        
2022-12-24 11:27:15.000000000 +0100
@@ -0,0 +1 @@
+pytest_plus
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pytest-plus-0.2/tox.ini new/pytest-plus-0.4.0/tox.ini
--- old/pytest-plus-0.2/tox.ini 2020-03-19 12:29:52.000000000 +0100
+++ new/pytest-plus-0.4.0/tox.ini       2022-12-24 11:27:01.000000000 +0100
@@ -1,36 +1,37 @@
 # For more information about tox, see https://tox.readthedocs.io/en/latest/
 [tox]
-minversion = 3.9.0
+minversion = 4.0
 envlist =
-    linting
-    devel
-    packaging
-    py{27,35,36,37,38}
+    lint
+    py
+    py-devel
+    pkg
 skipsdist = True
 isolated_build = True
 
 [testenv]
 description =
     Unit testing
-install_command =
-    python -c 'import subprocess, sys; pip_inst_cmd = sys.executable, "-m", 
"pip", "install"; subprocess.check_call(pip_inst_cmd + ("pip<19.1", )); 
subprocess.check_call(pip_inst_cmd + tuple(sys.argv[1:]))' {opts} {packages}
 usedevelop = True
 commands =
     pytest --collect-only
     # Do not use PYTEST_REQPASS as here, read README.md for details
-    sh -c "PYTEST_REQPASS=1 pytest --color=yes --html={envlogdir}/reports.html 
--self-contained-html {tty:-s}"
+    sh -c "PYTEST_REQPASS=1 coverage run -m pytest --color=yes 
--html={envlogdir}/reports.html --self-contained-html {tty:-s}"
     # We want to fail if result code is zero:
     sh -c "PYTEST_REQPASS=100 pytest >/dev/null && exit 1 || true"
 deps =
+    -e .[test]
     devel: git+https://github.com/pytest-dev/pytest.git
 extras =
     test
 setenv =
     PIP_DISABLE_PIP_VERSION_CHECK=1
+    PRE_COMMIT_COLOR=always
     PY_COLORS={env:PY_COLORS:1}
-    # pip: Avoid 2020-01-01 warnings: https://github.com/pypa/pip/issues/6207
-    PYTHONWARNINGS=ignore:DEPRECATION::pip._internal.cli.base_command
     PYTHONDONTWRITEBYTECODE=1
+    PIP_CONSTRAINT={toxinidir}/requirements.txt
+    devel: PIP_CONSTRAINT=/dev/null
+
 passenv =
     CI
     CURL_CA_BUNDLE
@@ -42,14 +43,11 @@
     SSL_CERT_FILE
     TOXENV
     TWINE_*
-whitelist_externals =
+allowlist_externals =
     sh
-    twine
-    pytest
-    pre-commit
     rm
 
-[testenv:linting]
+[testenv:lint]
 description = Performs linting, style checks, metadata-validation, packaging
 skip_install = true
 deps =
@@ -57,31 +55,33 @@
 commands =
     pre-commit run -a
 
-[testenv:packaging]
+[testenv:pkg]
 description =
     Validate that we can install the wheel w/ or w/o extras on Ubuntu, Debian,
     Fedora, RHEL 8 and CentOS 7 by using containers.
 deps =
-    pep517>=0.5.0
+    build
     twine
 commands =
     sh -c "rm -rf {toxinidir}/dist/ && mkdir -p {toxinidir}/dist/"
-    python -m pep517.build \
-      --source \
-      --binary \
-      --out-dir {toxinidir}/dist/ {toxinidir}
-    twine check dist/*
-    pytest --color=yes --html={envlogdir}/reports.html --self-contained-html 
{tty:-s}
-
-[testenv:devel]
-description: Unit testing using master branch of our main dependencies
-commands =
-    {[testenv]commands}
+    python -m build --outdir {toxinidir}/dist/
+    sh -c "twine check --strict dist/*"
 
-[testenv:upload]
-description = Builds the packages and uploads them to https://pypi.org
-envdir={toxworkdir}/packaging
-deps={[testenv:packaging]deps}
+[testenv:deps]
+description = Bump all test dependencies
+# we reuse the lint environment
+envdir = {toxworkdir}/lint
+skip_install = true
+basepython = python3.9
+deps =
+  {[testenv:lint]deps}
+setenv =
+  # without his upgrade would likely not do anything
+  PIP_CONSTRAINT = /dev/null
 commands =
-    {[testenv:packaging]commands}
-    twine upload --disable-progress-bar --skip-existing --verbose dist/*
+  pre-commit run --all-files --show-diff-on-failure --hook-stage manual up
+  pre-commit run --all-files --show-diff-on-failure --hook-stage manual schemas
+  # Update pre-commit hooks
+  pre-commit autoupdate
+  # We fail if files are modified at the end
+  git diff --exit-code

Reply via email to