Accepting request 672184 from home:alarrosa:branches:devel:languages:python

- Add missing dependency on python3-typing when python3 < 3.5
- Add fix-mock-patch-with-python3.4.patch to fix building the package in
  Leap 42.3. In python 3.5, mock.patch uses create=True automatically if
  you are patching builtins in a module, but in python 3.4 the argument
  is still needed.

- Enable tests
- Add allow-bytes-filenames.patch to fix some tests that fail because
  they pass bytes objects as filenames.
- Update remove_mock_dependency.patch to fix another test that used mock

OBS-URL: https://build.opensuse.org/request/show/672184
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-flake8?expand=0&rev=45
This commit is contained in:
Tomáš Chvátal 2019-02-06 21:25:51 +00:00 committed by Git OBS Bridge
parent a15f4220a7
commit 4ca7b43c11
4 changed files with 186 additions and 49 deletions

View File

@ -0,0 +1,58 @@
From: Antonio Larrosa <alarrosa@suse.com>
Subject: Fix mock.patch with python3.4
In python 3.5, mock.patch uses create=True automatically if you are patching
builtins in a module, but in python 3.4 the argument is still needed.
Index: flake8-3.7.5/tests/unit/test_debug.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_debug.py
+++ flake8-3.7.5/tests/unit/test_debug.py
@@ -70,7 +70,7 @@ def test_information(system, pyversion,
system.assert_called_once_with()
-@mock.patch('flake8.main.debug.print')
+@mock.patch('flake8.main.debug.print', create=True)
@mock.patch('flake8.main.debug.information', return_value={})
@mock.patch('json.dumps', return_value='{}')
def test_print_information_no_plugins(dumps, information, print_mock):
@@ -85,7 +85,7 @@ def test_print_information_no_plugins(du
assert print_mock.called is False
-@mock.patch('flake8.main.debug.print')
+@mock.patch('flake8.main.debug.print', create=True)
@mock.patch('flake8.main.debug.information', return_value={})
@mock.patch('json.dumps', return_value='{}')
def test_print_information(dumps, information, print_mock):
Index: flake8-3.7.5/tests/unit/test_base_formatter.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_base_formatter.py
+++ flake8-3.7.5/tests/unit/test_base_formatter.py
@@ -23,7 +23,7 @@ def test_start(filename):
"""Verify we open a new file in the start method."""
mock_open = mock.mock_open()
formatter = base.BaseFormatter(options(output_file=filename))
- with mock.patch('flake8.formatting.base.open', mock_open):
+ with mock.patch('flake8.formatting.base.open', mock_open, create=True):
formatter.start()
if filename is None:
@@ -90,7 +90,7 @@ def test_write_uses_an_output_file(tee):
formatter = base.BaseFormatter(options(tee=tee))
formatter.output_fd = filemock
- with mock.patch('flake8.formatting.base.print') as print_func:
+ with mock.patch('flake8.formatting.base.print', create=True) as print_func:
formatter.write(line, source)
if tee:
assert print_func.called
@@ -109,7 +109,7 @@ def test_write_uses_an_output_file(tee):
]
-@mock.patch('flake8.formatting.base.print')
+@mock.patch('flake8.formatting.base.print', create=True)
def test_write_uses_print(print_function):
"""Verify that we use the print function without an output file."""
line = 'Something to write'

View File

@ -1,3 +1,20 @@
-------------------------------------------------------------------
Wed Feb 6 09:42:40 UTC 2019 - Antonio Larrosa <alarrosa@suse.com>
- Add missing dependency on python3-typing when python3 < 3.5
- Add fix-mock-patch-with-python3.4.patch to fix building the package in
Leap 42.3. In python 3.5, mock.patch uses create=True automatically if
you are patching builtins in a module, but in python 3.4 the argument
is still needed.
-------------------------------------------------------------------
Tue Feb 5 11:48:33 UTC 2019 - Antonio Larrosa <alarrosa@suse.com>
- Enable tests
- Add allow-bytes-filenames.patch to fix some tests that fail because
they pass bytes objects as filenames.
- Update remove_mock_dependency.patch to fix another test that used mock
-------------------------------------------------------------------
Tue Feb 5 09:21:47 UTC 2019 - Antonio Larrosa <alarrosa@suse.com>

View File

@ -27,6 +27,7 @@ Group: Development/Languages/Python
URL: https://gitlab.com/pycqa/flake8
Source: https://files.pythonhosted.org/packages/source/f/flake8/flake8-%{version}.tar.gz
Patch0: remove_mock_dependency.patch
Patch1: fix-mock-patch-with-python3.4.patch
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@ -45,22 +46,27 @@ BuildRequires: %{python_module pyflakes >= 2.1.0}
BuildRequires: %{python_module pytest-runner}
BuildRequires: %{python_module pytest}
%if %{with python2}
BuildRequires: python2-configparser
BuildRequires: python2-configparser >= 3.7.0
BuildRequires: python2-enum34
BuildRequires: python2-functools32
BuildRequires: python2-mock
BuildRequires: python2-typing
%endif
%if 0%{?suse_version} < 1500
%if 0%{?python3_version_nodots} < 35
BuildRequires: python3-typing
%endif
# /SECTION
%ifpython2
Requires: python-configparser
Requires: python-configparser >= 3.7.0
Requires: python-enum34
Requires: python-functools32
Requires: python-typing
%endif
%ifpython3
%if 0%{?python3_version_nodots} < 35
Requires: python3-typing
%endif
%endif
%python_subpackages
%description
@ -91,7 +97,7 @@ Flake8 runs all the tools by launching the single ``flake8`` script.
%python_uninstall_alternative flake8
%check
%python_exec setup.py test
%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} $python -m pytest tests
%files %{python_files}
%doc README.rst

View File

@ -1,5 +1,7 @@
--- a/tests/integration/test_checker.py
+++ b/tests/integration/test_checker.py
Index: flake8-3.7.5/tests/integration/test_checker.py
===================================================================
--- flake8-3.7.5.orig/tests/integration/test_checker.py
+++ flake8-3.7.5/tests/integration/test_checker.py
@@ -1,5 +1,8 @@
"""Integration tests for the checker submodule."""
-import mock
@ -10,8 +12,10 @@
import pytest
from flake8 import checker
--- a/tests/unit/test_application.py
+++ b/tests/unit/test_application.py
Index: flake8-3.7.5/tests/unit/test_application.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_application.py
+++ flake8-3.7.5/tests/unit/test_application.py
@@ -1,7 +1,10 @@
"""Tests for the Application class."""
import optparse
@ -24,8 +28,10 @@
import pytest
from flake8.main import application as app
--- a/tests/unit/test_base_formatter.py
+++ b/tests/unit/test_base_formatter.py
Index: flake8-3.7.5/tests/unit/test_base_formatter.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_base_formatter.py
+++ flake8-3.7.5/tests/unit/test_base_formatter.py
@@ -1,7 +1,10 @@
"""Tests for the BaseFormatter object."""
import optparse
@ -38,8 +44,10 @@
import pytest
from flake8 import style_guide
--- a/tests/unit/test_checker_manager.py
+++ b/tests/unit/test_checker_manager.py
Index: flake8-3.7.5/tests/unit/test_checker_manager.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_checker_manager.py
+++ flake8-3.7.5/tests/unit/test_checker_manager.py
@@ -1,7 +1,10 @@
"""Tests for the Manager object for FileCheckers."""
import errno
@ -52,8 +60,10 @@
import pytest
from flake8 import checker
--- a/tests/unit/test_config_file_finder.py
+++ b/tests/unit/test_config_file_finder.py
Index: flake8-3.7.5/tests/unit/test_config_file_finder.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_config_file_finder.py
+++ flake8-3.7.5/tests/unit/test_config_file_finder.py
@@ -4,7 +4,10 @@ import configparser
import os
import sys
@ -66,8 +76,10 @@
import pytest
from flake8.options import config
--- a/tests/unit/test_debug.py
+++ b/tests/unit/test_debug.py
Index: flake8-3.7.5/tests/unit/test_debug.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_debug.py
+++ flake8-3.7.5/tests/unit/test_debug.py
@@ -1,6 +1,9 @@
"""Tests for our debugging module."""
import entrypoints
@ -79,8 +91,10 @@
import pytest
from flake8.main import debug
--- a/tests/unit/test_file_checker.py
+++ b/tests/unit/test_file_checker.py
Index: flake8-3.7.5/tests/unit/test_file_checker.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_file_checker.py
+++ flake8-3.7.5/tests/unit/test_file_checker.py
@@ -1,5 +1,8 @@
"""Unit tests for the FileChecker class."""
-import mock
@ -91,9 +105,11 @@
import pytest
import flake8
--- a/tests/unit/test_file_processor.py
+++ b/tests/unit/test_file_processor.py
@@ -5,7 +5,10 @@ import tokenize
Index: flake8-3.7.5/tests/unit/test_file_processor.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_file_processor.py
+++ flake8-3.7.5/tests/unit/test_file_processor.py
@@ -2,7 +2,10 @@
import ast
import tokenize
@ -105,8 +121,10 @@
import pytest
from flake8 import processor
--- a/tests/unit/test_get_local_plugins.py
+++ b/tests/unit/test_get_local_plugins.py
Index: flake8-3.7.5/tests/unit/test_get_local_plugins.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_get_local_plugins.py
+++ flake8-3.7.5/tests/unit/test_get_local_plugins.py
@@ -1,5 +1,8 @@
"""Tests for get_local_plugins."""
-import mock
@ -117,8 +135,10 @@
from flake8.options import config
--- a/tests/unit/test_git.py
+++ b/tests/unit/test_git.py
Index: flake8-3.7.5/tests/unit/test_git.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_git.py
+++ flake8-3.7.5/tests/unit/test_git.py
@@ -1,5 +1,8 @@
"""Tests around functionality in the git integration."""
-import mock
@ -129,8 +149,10 @@
import pytest
from flake8.main import git
--- a/tests/unit/test_legacy_api.py
+++ b/tests/unit/test_legacy_api.py
Index: flake8-3.7.5/tests/unit/test_legacy_api.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_legacy_api.py
+++ flake8-3.7.5/tests/unit/test_legacy_api.py
@@ -1,5 +1,8 @@
"""Tests for Flake8's legacy API."""
-import mock
@ -141,8 +163,10 @@
import pytest
from flake8.api import legacy as api
--- a/tests/unit/test_merged_config_parser.py
+++ b/tests/unit/test_merged_config_parser.py
Index: flake8-3.7.5/tests/unit/test_merged_config_parser.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_merged_config_parser.py
+++ flake8-3.7.5/tests/unit/test_merged_config_parser.py
@@ -1,7 +1,10 @@
"""Unit tests for flake8.options.config.MergedConfigParser."""
import os
@ -155,8 +179,10 @@
import pytest
from flake8.options import config
--- a/tests/unit/test_option.py
+++ b/tests/unit/test_option.py
Index: flake8-3.7.5/tests/unit/test_option.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_option.py
+++ flake8-3.7.5/tests/unit/test_option.py
@@ -1,5 +1,8 @@
"""Unit tests for flake8.options.manager.Option."""
-import mock
@ -167,8 +193,10 @@
import pytest
from flake8.options import manager
--- a/tests/unit/test_option_manager.py
+++ b/tests/unit/test_option_manager.py
Index: flake8-3.7.5/tests/unit/test_option_manager.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_option_manager.py
+++ flake8-3.7.5/tests/unit/test_option_manager.py
@@ -2,7 +2,10 @@
import optparse
import os
@ -181,8 +209,10 @@
import pytest
from flake8 import utils
--- a/tests/unit/test_plugin.py
+++ b/tests/unit/test_plugin.py
Index: flake8-3.7.5/tests/unit/test_plugin.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_plugin.py
+++ flake8-3.7.5/tests/unit/test_plugin.py
@@ -1,7 +1,10 @@
"""Tests for flake8.plugins.manager.Plugin."""
import optparse
@ -195,8 +225,10 @@
import pytest
from flake8 import exceptions
--- a/tests/unit/test_plugin_manager.py
+++ b/tests/unit/test_plugin_manager.py
Index: flake8-3.7.5/tests/unit/test_plugin_manager.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_plugin_manager.py
+++ flake8-3.7.5/tests/unit/test_plugin_manager.py
@@ -1,5 +1,8 @@
"""Tests for flake8.plugins.manager.PluginManager."""
-import mock
@ -207,8 +239,10 @@
from flake8.plugins import manager
--- a/tests/unit/test_plugin_type_manager.py
+++ b/tests/unit/test_plugin_type_manager.py
Index: flake8-3.7.5/tests/unit/test_plugin_type_manager.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_plugin_type_manager.py
+++ flake8-3.7.5/tests/unit/test_plugin_type_manager.py
@@ -1,7 +1,10 @@
"""Tests for flake8.plugins.manager.PluginTypeManager."""
import sys
@ -221,8 +255,10 @@
import pytest
from flake8 import exceptions
--- a/tests/unit/test_style_guide.py
+++ b/tests/unit/test_style_guide.py
Index: flake8-3.7.5/tests/unit/test_style_guide.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_style_guide.py
+++ flake8-3.7.5/tests/unit/test_style_guide.py
@@ -1,7 +1,10 @@
"""Tests for the flake8.style_guide.StyleGuide class."""
import optparse
@ -235,8 +271,10 @@
import pytest
from flake8 import statistics
--- a/tests/unit/test_utils.py
+++ b/tests/unit/test_utils.py
Index: flake8-3.7.5/tests/unit/test_utils.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_utils.py
+++ flake8-3.7.5/tests/unit/test_utils.py
@@ -1,7 +1,10 @@
"""Tests for flake8's utils module."""
import os
@ -249,8 +287,10 @@
import pytest
from flake8 import exceptions
--- a/tests/unit/test_violation.py
+++ b/tests/unit/test_violation.py
Index: flake8-3.7.5/tests/unit/test_violation.py
===================================================================
--- flake8-3.7.5.orig/tests/unit/test_violation.py
+++ flake8-3.7.5/tests/unit/test_violation.py
@@ -1,5 +1,8 @@
"""Tests for the flake8.style_guide.Violation class."""
-import mock
@ -261,9 +301,11 @@
import pytest
from flake8 import style_guide
--- a/setup.py
+++ b/setup.py
@@ -11,6 +11,12 @@
Index: flake8-3.7.5/setup.py
===================================================================
--- flake8-3.7.5.orig/setup.py
+++ flake8-3.7.5/setup.py
@@ -11,6 +11,12 @@ sys.path.insert(0, os.path.join(os.path.
import flake8
@ -276,9 +318,23 @@
# NOTE(sigmavirus24): When updating these requirements, update them in
# setup.cfg as well.
@@ -147,4 +153,5 @@
@@ -147,4 +153,5 @@ setuptools.setup(
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Quality Assurance",
],
+ tests_require=tests_require,
)
Index: flake8-3.7.5/tests/integration/test_main.py
===================================================================
--- flake8-3.7.5.orig/tests/integration/test_main.py
+++ flake8-3.7.5/tests/integration/test_main.py
@@ -1,5 +1,8 @@
"""Integration tests for the main entrypoint of flake8."""
-import mock
+try:
+ import unittest.mock as mock
+except ImportError:
+ import mock
from flake8 import utils
from flake8.main import application