utils: Tighten parse_comma_separated_list() contract further

Now that callers are ensuring that `value` is not `None`, we can further
tighten the contract and remove the conditional to account when `None`
is passed-in for `value`.

Additionally, add a new test vector to account for when an empty string
is passed in, which would fail `if no value`.
This commit is contained in:
Eric N. Vander Weele 2019-07-28 10:39:27 -04:00
parent f01011a403
commit 1757bce321
2 changed files with 2 additions and 4 deletions

View file

@ -24,7 +24,7 @@ string_types = (str, type(u""))
def parse_comma_separated_list(value, regexp=COMMA_SEPARATED_LIST_RE):
# type: (Optional[str], Pattern[str]) -> List[str]
# type: (str, Pattern[str]) -> List[str]
"""Parse a comma-separated list.
:param value:
@ -41,9 +41,6 @@ def parse_comma_separated_list(value, regexp=COMMA_SEPARATED_LIST_RE):
"""
assert isinstance(value, string_types), value # nosec (for bandit)
if not value:
return []
separated = regexp.split(value)
item_gen = (item.strip() for item in separated)
return [item for item in item_gen if item]

View file

@ -22,6 +22,7 @@ RELATIVE_PATHS = ["flake8", "pep8", "pyflakes", "mccabe"]
("E123,W234,,E206,,", ["E123", "W234", "E206"]),
("E123, W234,, E206,,", ["E123", "W234", "E206"]),
("E123,,W234,,E206,,", ["E123", "W234", "E206"]),
("", []),
])
def test_parse_comma_separated_list(value, expected):
"""Verify that similar inputs produce identical outputs."""