Hello community, here is the log from the commit of package python-pytest-reqs for openSUSE:Factory checked in at 2019-05-16 22:08:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pytest-reqs (Old) and /work/SRC/openSUSE:Factory/.python-pytest-reqs.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-reqs" Thu May 16 22:08:38 2019 rev:5 rq:703190 version:0.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pytest-reqs/python-pytest-reqs.changes 2019-02-28 21:42:44.249542162 +0100 +++ /work/SRC/openSUSE:Factory/.python-pytest-reqs.new.5148/python-pytest-reqs.changes 2019-05-16 22:08:40.454357102 +0200 @@ -1,0 +2,9 @@ +Wed May 15 14:42:23 UTC 2019 - John Vandenberg <[email protected]> + +- Bypass python_requires preventing installation on Python 3.4 +- Update to v0.2.1 + * Drop support for Python 3.4 + * Add support for pip 19.0 through 19.1.1 + * Fix issue with wrong attribute name + +------------------------------------------------------------------- Old: ---- pytest-reqs-0.2.0.tar.gz New: ---- pytest-reqs-0.2.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pytest-reqs.spec ++++++ --- /var/tmp/diff_new_pack.zpiIgW/_old 2019-05-16 22:08:41.798355881 +0200 +++ /var/tmp/diff_new_pack.zpiIgW/_new 2019-05-16 22:08:41.822355859 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pytest-reqs -Version: 0.2.0 +Version: 0.2.1 Release: 0 Summary: Pytest plugin to check pinned requirements License: MIT @@ -54,6 +54,8 @@ %prep %setup -q -n pytest-reqs-%{version} +sed -i '/python_requires/d' setup.py + chmod a-x CHANGELOG LICENSE README.rst rm -f tox.ini @@ -65,6 +67,7 @@ %python_expand %fdupes %{buildroot}%{$python_sitelib} %check +export PYTHONDONTWRITEBYTECODE=1 %python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} py.test-%{$python_bin_suffix} -v %files %{python_files} ++++++ pytest-reqs-0.2.0.tar.gz -> pytest-reqs-0.2.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-reqs-0.2.0/CHANGELOG new/pytest-reqs-0.2.1/CHANGELOG --- old/pytest-reqs-0.2.0/CHANGELOG 2018-10-17 11:16:48.000000000 +0200 +++ new/pytest-reqs-0.2.1/CHANGELOG 2019-05-12 02:04:08.000000000 +0200 @@ -1,3 +1,11 @@ +0.2.1 +---------------------------------------------- + +- Drop support for Python 3.4 +- Add support for pip 19.0 through 19.1.1 +- Fix issue with wrong attribute name (#43) + + 0.2.0 ---------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-reqs-0.2.0/PKG-INFO new/pytest-reqs-0.2.1/PKG-INFO --- old/pytest-reqs-0.2.0/PKG-INFO 2018-10-17 11:17:05.000000000 +0200 +++ new/pytest-reqs-0.2.1/PKG-INFO 2019-05-12 02:05:07.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pytest-reqs -Version: 0.2.0 +Version: 0.2.1 Summary: pytest plugin to check pinned requirements Home-page: https://github.com/di/pytest-reqs Author: Dustin Ingram @@ -201,7 +201,6 @@ Classifier: Framework :: Pytest Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-reqs-0.2.0/pytest_reqs.egg-info/PKG-INFO new/pytest-reqs-0.2.1/pytest_reqs.egg-info/PKG-INFO --- old/pytest-reqs-0.2.0/pytest_reqs.egg-info/PKG-INFO 2018-10-17 11:17:05.000000000 +0200 +++ new/pytest-reqs-0.2.1/pytest_reqs.egg-info/PKG-INFO 2019-05-12 02:05:06.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pytest-reqs -Version: 0.2.0 +Version: 0.2.1 Summary: pytest plugin to check pinned requirements Home-page: https://github.com/di/pytest-reqs Author: Dustin Ingram @@ -201,7 +201,6 @@ Classifier: Framework :: Pytest Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-reqs-0.2.0/pytest_reqs.py new/pytest-reqs-0.2.1/pytest_reqs.py --- old/pytest-reqs-0.2.0/pytest_reqs.py 2018-10-17 10:59:25.000000000 +0200 +++ new/pytest-reqs-0.2.1/pytest_reqs.py 2019-05-12 02:04:08.000000000 +0200 @@ -1,4 +1,3 @@ - from distutils.util import strtobool from glob import glob from itertools import chain @@ -8,57 +7,53 @@ from sys import executable from warnings import warn +import packaging.utils import packaging.version -import pytest -from pkg_resources import get_distribution import pip_api +from pkg_resources import get_distribution +import pytest -max_version = packaging.version.parse('18.1.0') +max_version = packaging.version.parse("18.1.0") pip_version = packaging.version.parse(pip_api.version()) if pip_version > max_version: warn( - 'Version pip=={} is possibly incompatible, highest ' - 'known compatible version is {}.'.format( - pip_version, max_version - ) + "Version pip=={} is possibly incompatible, highest " + "known compatible version is {}.".format(pip_version, max_version) ) -__version__ = '0.0.4' +__version__ = "0.0.4" -DEFAULT_PATTERNS = [ - 'req*.txt', 'req*.pip', 'requirements/*.txt', 'requirements/*.pip' -] +DEFAULT_PATTERNS = ["req*.txt", "req*.pip", "requirements/*.txt", "requirements/*.pip"] def pytest_addoption(parser): - group = parser.getgroup('general') + group = parser.getgroup("general") group.addoption( - '--reqs', action='store_true', - help='check requirements files against what is installed' + "--reqs", + action="store_true", + help="check requirements files against what is installed", ) group.addoption( - '--reqs-outdated', action='store_true', - help='check requirements files for updates' + "--reqs-outdated", + action="store_true", + help="check requirements files for updates", ) + parser.addini("reqsignorelocal", help="ignore local requirements (default: False)") parser.addini( - 'reqsignorelocal', - help='ignore local requirements (default: False)', - ) - parser.addini( - 'reqsfilenamepatterns', - help='Override the default filename patterns to search (default:' - 'req*.txt, req*.pip, requirements/*.txt, requirements/*.pip)', - type='linelist', + "reqsfilenamepatterns", + help="Override the default filename patterns to search (default:" + "req*.txt, req*.pip, requirements/*.txt, requirements/*.pip)", + type="linelist", ) def pytest_sessionstart(session): config = session.config - if not hasattr(config, 'ignore_local'): - ignore_local = config.getini('reqsignorelocal') or 'no' + if not hasattr(config, "ignore_local"): + ignore_local = config.getini("reqsignorelocal") or "no" config.ignore_local = strtobool(ignore_local) - if not hasattr(config, 'patterns'): - config.patterns = config.getini('reqsfilenamepatterns') + if not hasattr(config, "patterns"): + config.patterns = config.getini("reqsfilenamepatterns") def pytest_collection_modifyitems(config, session, items): @@ -74,7 +69,12 @@ def check_requirements(config, session, items): - installed_distributions = pip_api.installed_distributions() + installed_distributions = dict( + [ + (packaging.utils.canonicalize_name(name), req) + for name, req in pip_api.installed_distributions().items() + ] + ) items.extend( ReqsItem(filename, installed_distributions, config, session) @@ -83,17 +83,17 @@ def check_outdated_requirements(config, session, items): - local_pip_version = packaging.version.parse( - get_distribution('pip').version - ) - required_pip_version = packaging.version.parse('9.0.0') + local_pip_version = packaging.version.parse(get_distribution("pip").version) + required_pip_version = packaging.version.parse("9.0.0") if local_pip_version >= required_pip_version: - with open(devnull, 'w') as DEVNULL: - pip_outdated_dists = loads(check_output( - [executable, '-m', 'pip', 'list', '-o', '--format', 'json'], - stderr=DEVNULL - )) + with open(devnull, "w") as DEVNULL: + pip_outdated_dists = loads( + check_output( + [executable, "-m", "pip", "list", "-o", "--format", "json"], + stderr=DEVNULL, + ) + ) items.extend( OutdatedReqsItem(filename, pip_outdated_dists, config, session) @@ -103,7 +103,7 @@ class PipOption: def __init__(self, config): - self.skip_requirements_regex = '^-e' if config.ignore_local else '' + self.skip_requirements_regex = "^-e" if config.ignore_local else "" class ReqsError(Exception): @@ -111,42 +111,37 @@ class ReqsItem(pytest.Item, pytest.File): - def __init__(self, filename, installed_distributions, config, session): - super(ReqsItem, self).__init__( - filename, config=config, session=session - ) - self.add_marker('reqs') + super(ReqsItem, self).__init__(filename, config=config, session=session) + self.add_marker("reqs") self.filename = filename self.installed_distributions = installed_distributions self.config = config def get_requirements(self): try: - return pip_api.parse_requirements( - self.filename, options=PipOption(self.config) - ) + return { + packaging.utils.canonicalize_name(name): req + for name, req in pip_api.parse_requirements( + self.filename, options=PipOption(self.config) + ).items() + } except pip_api.exceptions.PipError as e: - raise ReqsError('%s (from -r %s)' % ( - e.args[0].split('\n')[0], - self.filename, - )) + raise ReqsError( + "%s (from -r %s)" % (e.args[0].split("\n")[0], self.filename) + ) def runtest(self): for name, req in self.get_requirements().items(): try: installed_distribution = self.installed_distributions[name] except KeyError: - raise ReqsError( - 'Distribution "%s" is not installed' % (name) - ) + raise ReqsError('Distribution "%s" is not installed' % (name)) if not req.specifier.contains(installed_distribution.version): raise ReqsError( - 'Distribution "%s" requires %s but %s is installed' % ( - installed_distribution.project_name, - req, - installed_distribution.version, - )) + 'Distribution "%s" requires %s but %s is installed' + % (installed_distribution.name, req, installed_distribution.version) + ) def repr_failure(self, excinfo): if excinfo.errisinstance(ReqsError): @@ -154,15 +149,13 @@ return super(ReqsItem, self).repr_failure(excinfo) def reportinfo(self): - return (self.fspath, -1, 'requirements-check') + return (self.fspath, -1, "requirements-check") class OutdatedReqsItem(ReqsItem): def __init__(self, filename, pip_outdated_dists, config, session): - super(ReqsItem, self).__init__( - filename, config=config, session=session - ) - self.add_marker('reqs-outdated') + super(ReqsItem, self).__init__(filename, config=config, session=session) + self.add_marker("reqs-outdated") self.filename = filename self.pip_outdated_dists = pip_outdated_dists self.config = config @@ -170,12 +163,9 @@ def runtest(self): for name, req in self.get_requirements().items(): for dist in self.pip_outdated_dists: - if name == dist['name']: + if name == dist["name"]: raise ReqsError( 'Distribution "%s" is outdated (from %s), ' - 'latest version is %s==%s' % ( - name, - req.comes_from, - name, - dist['latest_version'] - )) + "latest version is %s==%s" + % (name, req.comes_from, name, dist["latest_version"]) + ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-reqs-0.2.0/setup.py new/pytest-reqs-0.2.1/setup.py --- old/pytest-reqs-0.2.0/setup.py 2018-10-17 11:16:48.000000000 +0200 +++ new/pytest-reqs-0.2.1/setup.py 2019-05-12 02:04:08.000000000 +0200 @@ -1,28 +1,26 @@ from setuptools import setup -__version__ = '0.2.0' +__version__ = "0.2.1" -if __name__ == '__main__': - setup( - name='pytest-reqs', - description='pytest plugin to check pinned requirements', - long_description=open('README.rst').read(), - license='MIT license', - version=__version__, - author='Dustin Ingram', - author_email='[email protected]', - url='https://github.com/di/pytest-reqs', - py_modules=['pytest_reqs'], - entry_points={'pytest11': ['reqs = pytest_reqs']}, - install_requires=['pytest>=2.4.2', 'packaging>=17.1', 'pip_api>=0.0.2'], - tests_require=['pytest>=2.4.2', 'pretend'], - classifiers=[ - 'Framework :: Pytest', - 'Programming Language :: Python', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - ], - ) +setup( + name="pytest-reqs", + description="pytest plugin to check pinned requirements", + long_description=open("README.rst").read(), + license="MIT license", + version=__version__, + author="Dustin Ingram", + author_email="[email protected]", + url="https://github.com/di/pytest-reqs", + py_modules=["pytest_reqs"], + entry_points={"pytest11": ["reqs = pytest_reqs"]}, + install_requires=["pytest>=2.4.2", "packaging>=17.1", "pip_api>=0.0.2"], + tests_require=["pytest>=2.4.2", "pretend"], + classifiers=[ + "Framework :: Pytest", + "Programming Language :: Python", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + ], +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-reqs-0.2.0/test_reqs.py new/pytest-reqs-0.2.1/test_reqs.py --- old/pytest-reqs-0.2.0/test_reqs.py 2018-10-17 10:59:25.000000000 +0200 +++ new/pytest-reqs-0.2.1/test_reqs.py 2019-05-12 02:04:08.000000000 +0200 @@ -1,196 +1,197 @@ from distutils.version import LooseVersion +from pip_api._installed_distributions import Distribution from pkg_resources import get_distribution from pretend import stub import pytest -pytest_plugins = "pytester", +pytest_plugins = ("pytester",) def test_version(): import pytest_reqs + assert pytest_reqs.__version__ @pytest.fixture def mock_dist(): - return stub(project_name='foo', version='1.0') + return Distribution(name="foo", version="1.0") [email protected]('requirements', [ - 'foo', - 'foo==1.0', - 'foo>=1.0', - 'foo<=1.0', -]) [email protected]( + "requirements", ["foo", "Foo", "foo==1.0", "foo>=1.0", "foo<=1.0", "# comment"] +) def test_existing_requirement(requirements, mock_dist, testdir, monkeypatch): - testdir.makefile('.txt', requirements=requirements) + testdir.makefile(".txt", requirements=requirements) + monkeypatch.setattr( + "pytest_reqs.pip_api.installed_distributions", + lambda: {mock_dist.name: mock_dist}, + ) + + result = testdir.runpytest("--reqs") + assert "passed" in result.stdout.str() + + [email protected]( + "requirements, dist", + [ + ("foo-bar", stub(name="foo-bar", version="1.0")), + ("foo-bar==1.0", stub(name="foo-bar", version="1.0")), + # Capitalization + ("Foo-bar", stub(name="foo-bar", version="1.0")), + ("foo-bar", stub(name="Foo-bar", version="1.0")), + # Periods + ("foo.bar", stub(name="foo-bar", version="1.0")), + ("foo-bar", stub(name="foo.bar", version="1.0")), + # Underscores + ("foo_bar", stub(name="foo-bar", version="1.0")), + ("foo-bar", stub(name="foo_bar", version="1.0")), + ], +) +def test_canonicalization(requirements, dist, testdir, monkeypatch): + testdir.makefile(".txt", requirements=requirements) monkeypatch.setattr( - 'pytest_reqs.pip_api.installed_distributions', - lambda: {mock_dist.project_name: mock_dist} + "pytest_reqs.pip_api.installed_distributions", lambda: {dist.name: dist} ) result = testdir.runpytest("--reqs") - assert 'passed' in result.stdout.str() + assert "passed" in result.stdout.str() def test_missing_requirement(mock_dist, testdir, monkeypatch): - testdir.makefile('.txt', requirements='foo') - monkeypatch.setattr('pytest_reqs.pip_api.installed_distributions', lambda: {}) + testdir.makefile(".txt", requirements="foo") + monkeypatch.setattr("pytest_reqs.pip_api.installed_distributions", lambda: {}) result = testdir.runpytest("--reqs") - result.stdout.fnmatch_lines([ - '*Distribution "foo" is not installed*', - "*1 failed*", - ]) - assert 'passed' not in result.stdout.str() - - [email protected]('requirements', [ - 'foo==2.0', - 'foo>1.0', - 'foo<1.0', -]) + result.stdout.fnmatch_lines(['*Distribution "foo" is not installed*', "*1 failed*"]) + assert "passed" not in result.stdout.str() + + [email protected]("requirements", ["foo==2.0", "foo>1.0", "foo<1.0"]) def test_wrong_version(requirements, mock_dist, testdir, monkeypatch): - testdir.makefile('.txt', requirements=requirements) + testdir.makefile(".txt", requirements=requirements) monkeypatch.setattr( - 'pytest_reqs.pip_api.installed_distributions', - lambda: {mock_dist.project_name: mock_dist} + "pytest_reqs.pip_api.installed_distributions", + lambda: {mock_dist.name: mock_dist}, ) result = testdir.runpytest("--reqs") - result.stdout.fnmatch_lines([ - '*Distribution "foo" requires %s*' % (requirements), - "*1 failed*", - ]) - assert 'passed' not in result.stdout.str() + result.stdout.fnmatch_lines( + ['*Distribution "foo" requires %s*' % (requirements), "*1 failed*"] + ) + assert "passed" not in result.stdout.str() [email protected]('requirements', [ - 'foo=1.0', - 'foo=>1.0', -]) [email protected]("requirements", ["foo=1.0", "foo=>1.0"]) def test_invalid_requirement(requirements, mock_dist, testdir, monkeypatch): - testdir.makefile('.txt', requirements=requirements) + testdir.makefile(".txt", requirements=requirements) monkeypatch.setattr( - 'pytest_reqs.pip_api.installed_distributions', - lambda: {mock_dist.project_name: mock_dist} + "pytest_reqs.pip_api.installed_distributions", + lambda: {mock_dist.name: mock_dist}, ) result = testdir.runpytest("--reqs") - result.stdout.fnmatch_lines([ - '*Invalid requirement*', - "*1 failed*", - ]) + result.stdout.fnmatch_lines(["*Invalid requirement*", "*1 failed*"]) - assert 'passed' not in result.stdout.str() + assert "passed" not in result.stdout.str() def test_missing_local_requirement(testdir, monkeypatch): - testdir.makefile('.txt', requirements='-e ../foo') - monkeypatch.setattr('pytest_reqs.pip_api.installed_distributions', lambda: {}) + testdir.makefile(".txt", requirements="-e ../foo") + monkeypatch.setattr("pytest_reqs.pip_api.installed_distributions", lambda: {}) result = testdir.runpytest("--reqs") - result.stdout.fnmatch_lines([ - '*foo should either be a path to a local project*', - ]) - assert 'passed' not in result.stdout.str() + result.stdout.fnmatch_lines(["*foo should either be a path to a local project*"]) + assert "passed" not in result.stdout.str() def test_local_requirement_ignored(testdir, monkeypatch): - testdir.makefile('.txt', requirements='-e ../foo') - testdir.makeini('[pytest]\nreqsignorelocal=True') - monkeypatch.setattr('pytest_reqs.pip_api.installed_distributions', lambda: {}) + testdir.makefile(".txt", requirements="-e ../foo") + testdir.makeini("[pytest]\nreqsignorelocal=True") + monkeypatch.setattr("pytest_reqs.pip_api.installed_distributions", lambda: {}) result = testdir.runpytest("--reqs") - assert 'passed' in result.stdout.str() + assert "passed" in result.stdout.str() def test_local_requirement_ignored_using_dynamic_config(testdir, monkeypatch): - testdir.makefile('.txt', requirements='-e ../foo') - testdir.makeconftest(""" + testdir.makefile(".txt", requirements="-e ../foo") + testdir.makeconftest( + """ def pytest_configure(config): config.ignore_local = True - """) - monkeypatch.setattr('pytest_reqs.pip_api.installed_distributions', lambda: {}) - - result = testdir.runpytest("--reqs") - assert 'passed' in result.stdout.str() - - -def test_non_lowered_requirement(mock_dist, testdir, monkeypatch): - testdir.makefile('.txt', requirements='Foo') - monkeypatch.setattr( - 'pytest_reqs.pip_api.installed_distributions', - lambda: {mock_dist.project_name: mock_dist} + """ ) + monkeypatch.setattr("pytest_reqs.pip_api.installed_distributions", lambda: {}) result = testdir.runpytest("--reqs") - assert 'passed' in result.stdout.str() + assert "passed" in result.stdout.str() def test_no_option(testdir, monkeypatch): - testdir.makefile('.txt', requirements='foo') - monkeypatch.setattr('pytest_reqs.pip_api.installed_distributions', lambda: {}) + testdir.makefile(".txt", requirements="foo") + monkeypatch.setattr("pytest_reqs.pip_api.installed_distributions", lambda: {}) result = testdir.runpytest() - assert 'collected 0 items' in result.stdout.str() + assert "collected 0 items" in result.stdout.str() def test_override_filenamepatterns(testdir, monkeypatch): - testdir.makefile('.txt', a='foo') - testdir.makefile('.txt', b='bar') - testdir.makeini('[pytest]\nreqsfilenamepatterns=\n a.txt\n b.txt') + testdir.makefile(".txt", a="foo") + testdir.makefile(".txt", b="bar") + testdir.makeini("[pytest]\nreqsfilenamepatterns=\n a.txt\n b.txt") monkeypatch.setattr( - 'pytest_reqs.pip_api.installed_distributions', + "pytest_reqs.pip_api.installed_distributions", lambda: { - 'bar': stub(project_name='bar', version='1.0'), - 'foo': stub(project_name='foo', version='1.0'), + "bar": stub(name="bar", version="1.0"), + "foo": stub(name="foo", version="1.0"), }, ) result = testdir.runpytest("--reqs") - assert 'passed' in result.stdout.str() + assert "passed" in result.stdout.str() def test_override_filenamepatterns_using_dynamic_config(testdir, monkeypatch): - testdir.makefile('.txt', a='foo') - testdir.makefile('.txt', b='bar') - testdir.makeconftest(""" + testdir.makefile(".txt", a="foo") + testdir.makefile(".txt", b="bar") + testdir.makeconftest( + """ def pytest_configure(config): config.patterns = ['a.txt', 'b.txt'] - """) + """ + ) monkeypatch.setattr( - 'pytest_reqs.pip_api.installed_distributions', + "pytest_reqs.pip_api.installed_distributions", lambda: { - 'bar': stub(project_name='bar', version='1.0'), - 'foo': stub(project_name='foo', version='1.0'), + "bar": stub(name="bar", version="1.0"), + "foo": stub(name="foo", version="1.0"), }, ) result = testdir.runpytest("--reqs") - assert 'passed' in result.stdout.str() + assert "passed" in result.stdout.str() @pytest.mark.skipif( - LooseVersion('9.0.0') > LooseVersion(get_distribution('pip').version), - reason='incompatible pip version' + LooseVersion("9.0.0") > LooseVersion(get_distribution("pip").version), + reason="incompatible pip version", ) [email protected]('requirements', [ - 'foo', - 'foo==1.0' -]) [email protected]("requirements", ["foo", "foo==1.0"]) def test_outdated_version(requirements, testdir, monkeypatch): - testdir.makefile('.txt', requirements=requirements) + testdir.makefile(".txt", requirements=requirements) pip_outdated_dists_output = '[{"name": "foo", "latest_version": "1.0.1"}]' monkeypatch.setattr( - 'pytest_reqs.check_output', lambda *_, **__: pip_outdated_dists_output + "pytest_reqs.check_output", lambda *_, **__: pip_outdated_dists_output ) result = testdir.runpytest("--reqs-outdated") - result.stdout.fnmatch_lines([ - '*Distribution "foo" is outdated (from -r requirements.txt (line 1)), ' - 'latest version is foo==1.0.1*', - "*1 failed*", - ]) - assert 'passed' not in result.stdout.str() + result.stdout.fnmatch_lines( + [ + '*Distribution "foo" is outdated (from -r requirements.txt (line 1)), ' + "latest version is foo==1.0.1*", + "*1 failed*", + ] + ) + assert "passed" not in result.stdout.str() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-reqs-0.2.0/tox.ini new/pytest-reqs-0.2.1/tox.ini --- old/pytest-reqs-0.2.0/tox.ini 2018-10-17 10:59:35.000000000 +0200 +++ new/pytest-reqs-0.2.1/tox.ini 2019-05-12 02:04:08.000000000 +0200 @@ -1,10 +1,9 @@ [tox] envlist= - py27-pip{181,180,101,100,903,902,901,900,812,811,810,803,802,801,800,712,711,710}, - py34-pip{181,180,101,100,903,902,901,900,812,811,810,803,802,801,800,712,711,710}, - py35-pip{181,180,101,100,903,902,901,900,812,811,810,803,802,801,800,712,711,710}, - py36-pip{181,180,101,100,903,902,901,900,812,811,810,803,802,801,800,712,711,710}, - py37-pip{181,180,101,100,903,902,901,900,812,811,810,803,802,801,800,712,711,710}, + py27-pip{1911,191,1903,1902,1901,190,181,180,101,100,903,902,901,900,812,811,810,803,802,801,800,712,711,710,703,702,701,700,611,610,608,607,606,605,604,603,602,601,60}, + py35-pip{1911,191,1903,1902,1901,190,181,180,101,100,903,902,901,900,812,811,810,803,802,801,800,712,711,710,703,702,701,700,611,610,608,607,606,605,604,603,602,601,60}, + py36-pip{1911,191,1903,1902,1901,190,181,180,101,100,903,902,901,900,812,811,810,803,802,801,800,712,711,710}, + py37-pip{1911,191,1903,1902,1901,190,181,180,101,100,903,902,901,900,812,811,810,803,802,801,800,712,711,710}, py27-pytesttrunk, test-pytest-xdist, lint @@ -12,6 +11,12 @@ [testenv] deps= -rrequirements/test.txt + pip1911: pip==19.1.1 + pip191: pip==19.1 + pip1903: pip==19.0.3 + pip1902: pip==19.0.2 + pip1901: pip==19.0.1 + pip190: pip==19.0 pip181: pip==18.1 pip180: pip==18.0 pip101: pip==10.0.1 @@ -35,8 +40,10 @@ py.test {posargs} [testenv:lint] +deps= + black commands= - flake8 + black --check . [testenv:test-pytest-xdist] basepython=python
