Skip to content

Commit

Permalink
Only extract requirement name from text file
Browse files Browse the repository at this point in the history
Fixes arkq#16
arkq committed Feb 7, 2020
1 parent d2b7eab commit da9045d
Showing 2 changed files with 19 additions and 10 deletions.
5 changes: 4 additions & 1 deletion src/flake8_requirements/checker.py
Original file line number Diff line number Diff line change
@@ -380,8 +380,11 @@ def resolve_requirement(cls, requirement, max_depth=0):
return resolved

if option:
# Skip whole line if option was not processed earlier.
return []
return [requirement]

# Extract requirement name (skip comments, options, etc.).
return [re.split(r"[^\w.-]+", requirement, 1)[0]]

@classmethod
@memoize
24 changes: 15 additions & 9 deletions test/test_requirements.py
Original file line number Diff line number Diff line change
@@ -21,10 +21,16 @@ def setUp(self):
def test_resolve_requirement(self):
self.assertEqual(
Flake8Checker.resolve_requirement("foo >= 1.0.0"),
["foo >= 1.0.0"],
["foo"],
)

def test_resolve_requirement_option(self):
def test_resolve_requirement_with_option(self):
self.assertEqual(
Flake8Checker.resolve_requirement("foo-bar.v1==1.0 --option"),
["foo-bar.v1"],
)

def test_resolve_requirement_standalone_option(self):
self.assertEqual(
Flake8Checker.resolve_requirement("--extra-index-url"),
[],
@@ -47,15 +53,15 @@ def test_resolve_requirement_with_file_content(self):
with mock.patch(builtins_open, mock.mock_open(read_data=content)):
self.assertEqual(
Flake8Checker.resolve_requirement("-r requirements.txt", 1),
["foo >= 1.0.0", "bar <= 1.0.0"],
["foo", "bar"],
)

def test_resolve_requirement_with_file_content_line_continuation(self):
content = "foo[bar] \\\n>= 1.0.0\n"
with mock.patch(builtins_open, mock.mock_open(read_data=content)):
self.assertEqual(
Flake8Checker.resolve_requirement("-r requirements.txt", 1),
["foo[bar] >= 1.0.0"],
["foo"],
)

def test_resolve_requirement_with_file_recursion_beyond_max_depth(self):
@@ -76,7 +82,7 @@ def test_resolve_requirement_with_file_recursion(self):

self.assertEqual(
Flake8Checker.resolve_requirement("-r requirements.txt", 2),
["baz", "qux", "bar <= 1.0.0"],
["baz", "qux", "bar"],
)

def test_init_with_no_requirements(self):
@@ -93,8 +99,8 @@ def test_init_with_simple_requirements(self):
self.assertEqual(
checker.get_requirements_txt(),
tuple(parse_requirements([
"foo >= 1.0.0",
"bar <= 1.0.0",
"foo",
"bar",
])),
)

@@ -130,9 +136,9 @@ def test_init_with_recursive_requirements(self):
self.assertEqual(
checker.get_requirements_txt(),
tuple(parse_requirements([
"foo >= 1.0.0",
"foo",
"baz",
"qux",
"bar <= 1.0.0",
"bar",
])),
)

0 comments on commit da9045d

Please sign in to comment.