mirror of
https://github.com/PyCQA/flake8.git
synced 2026-03-30 02:46:52 +00:00
130 lines
3.9 KiB
Text
130 lines
3.9 KiB
Text
diff --git a/flake8/utils.py b/flake8/utils.py
|
|
index f6ce384..7cd12b0 100644
|
|
--- a/flake8/utils.py
|
|
+++ b/flake8/utils.py
|
|
@@ -75,8 +75,8 @@ def stdin_get_value():
|
|
return cached_value.getvalue()
|
|
|
|
|
|
-def parse_unified_diff():
|
|
- # type: () -> List[str]
|
|
+def parse_unified_diff(diff=None):
|
|
+ # type: (str) -> List[str]
|
|
"""Parse the unified diff passed on stdin.
|
|
|
|
:returns:
|
|
@@ -84,7 +84,10 @@ def parse_unified_diff():
|
|
:rtype:
|
|
dict
|
|
"""
|
|
- diff = stdin_get_value()
|
|
+ # Allow us to not have to patch out stdin_get_value
|
|
+ if diff is None:
|
|
+ diff = stdin_get_value()
|
|
+
|
|
number_of_rows = None
|
|
current_path = None
|
|
parsed_paths = collections.defaultdict(set)
|
|
diff --git a/tests/fixtures/diffs/single_file_diff b/tests/fixtures/diffs/single_file_diff
|
|
new file mode 100644
|
|
index 0000000..77ca534
|
|
--- /dev/null
|
|
+++ b/tests/fixtures/diffs/single_file_diff
|
|
@@ -0,0 +1,27 @@
|
|
+diff --git a/flake8/utils.py b/flake8/utils.py
|
|
+index f6ce384..7cd12b0 100644
|
|
+--- a/flake8/utils.py
|
|
++++ b/flake8/utils.py
|
|
+@@ -75,8 +75,8 @@ def stdin_get_value():
|
|
+ return cached_value.getvalue()
|
|
+
|
|
+
|
|
+-def parse_unified_diff():
|
|
+- # type: () -> List[str]
|
|
++def parse_unified_diff(diff=None):
|
|
++ # type: (str) -> List[str]
|
|
+ """Parse the unified diff passed on stdin.
|
|
+
|
|
+ :returns:
|
|
+@@ -84,7 +84,10 @@ def parse_unified_diff():
|
|
+ :rtype:
|
|
+ dict
|
|
+ """
|
|
+- diff = stdin_get_value()
|
|
++ # Allow us to not have to patch out stdin_get_value
|
|
++ if diff is None:
|
|
++ diff = stdin_get_value()
|
|
++
|
|
+ number_of_rows = None
|
|
+ current_path = None
|
|
+ parsed_paths = collections.defaultdict(set)
|
|
diff --git a/tests/fixtures/diffs/two_file_diff b/tests/fixtures/diffs/two_file_diff
|
|
new file mode 100644
|
|
index 0000000..5bd35cd
|
|
--- /dev/null
|
|
+++ b/tests/fixtures/diffs/two_file_diff
|
|
@@ -0,0 +1,45 @@
|
|
+diff --git a/flake8/utils.py b/flake8/utils.py
|
|
+index f6ce384..7cd12b0 100644
|
|
+--- a/flake8/utils.py
|
|
++++ b/flake8/utils.py
|
|
+@@ -75,8 +75,8 @@ def stdin_get_value():
|
|
+ return cached_value.getvalue()
|
|
+
|
|
+
|
|
+-def parse_unified_diff():
|
|
+- # type: () -> List[str]
|
|
++def parse_unified_diff(diff=None):
|
|
++ # type: (str) -> List[str]
|
|
+ """Parse the unified diff passed on stdin.
|
|
+
|
|
+ :returns:
|
|
+@@ -84,7 +84,10 @@ def parse_unified_diff():
|
|
+ :rtype:
|
|
+ dict
|
|
+ """
|
|
+- diff = stdin_get_value()
|
|
++ # Allow us to not have to patch out stdin_get_value
|
|
++ if diff is None:
|
|
++ diff = stdin_get_value()
|
|
++
|
|
+ number_of_rows = None
|
|
+ current_path = None
|
|
+ parsed_paths = collections.defaultdict(set)
|
|
+diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py
|
|
+index d69d939..21482ce 100644
|
|
+--- a/tests/unit/test_utils.py
|
|
++++ b/tests/unit/test_utils.py
|
|
+@@ -115,3 +115,13 @@ def test_parameters_for_function_plugin():
|
|
+ plugin = plugin_manager.Plugin('plugin-name', object())
|
|
+ plugin._plugin = fake_plugin
|
|
+ assert utils.parameters_for(plugin) == ['physical_line', 'self', 'tree']
|
|
++
|
|
++
|
|
++def read_diff_file(filename):
|
|
++ """Read the diff file in its entirety."""
|
|
++ with open(filename, 'r') as fd:
|
|
++ content = fd.read()
|
|
++ return content
|
|
++
|
|
++
|
|
++SINGLE_FILE_DIFF = read_diff_file('tests/fixtures/diffs/single_file_diff')
|
|
diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py
|
|
index d69d939..1461369 100644
|
|
--- a/tests/unit/test_utils.py
|
|
+++ b/tests/unit/test_utils.py
|
|
@@ -115,3 +115,14 @@ def test_parameters_for_function_plugin():
|
|
plugin = plugin_manager.Plugin('plugin-name', object())
|
|
plugin._plugin = fake_plugin
|
|
assert utils.parameters_for(plugin) == ['physical_line', 'self', 'tree']
|
|
+
|
|
+
|
|
+def read_diff_file(filename):
|
|
+ """Read the diff file in its entirety."""
|
|
+ with open(filename, 'r') as fd:
|
|
+ content = fd.read()
|
|
+ return content
|
|
+
|
|
+
|
|
+SINGLE_FILE_DIFF = read_diff_file('tests/fixtures/diffs/single_file_diff')
|
|
+TWO_FILE_DIFF = read_diff_file('tests/fixtures/diffs/two_file_diff')
|