mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-11 15:24:18 +00:00
Add more tests around the processor module
This commit is contained in:
parent
4ea161ff9c
commit
425f89eee9
2 changed files with 49 additions and 2 deletions
|
|
@ -370,6 +370,8 @@ def log_token(log, token):
|
||||||
token[1]))
|
token[1]))
|
||||||
|
|
||||||
|
|
||||||
|
# NOTE(sigmavirus24): This was taken wholesale from
|
||||||
|
# https://github.com/PyCQA/pycodestyle
|
||||||
def expand_indent(line):
|
def expand_indent(line):
|
||||||
r"""Return the amount of indentation.
|
r"""Return the amount of indentation.
|
||||||
|
|
||||||
|
|
@ -397,6 +399,9 @@ def expand_indent(line):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
# NOTE(sigmavirus24): This was taken wholesale from
|
||||||
|
# https://github.com/PyCQA/pycodestyle. The in-line comments were edited to be
|
||||||
|
# more descriptive.
|
||||||
def mutate_string(text):
|
def mutate_string(text):
|
||||||
"""Replace contents with 'xxx' to prevent syntax matching.
|
"""Replace contents with 'xxx' to prevent syntax matching.
|
||||||
|
|
||||||
|
|
@ -407,10 +412,12 @@ def mutate_string(text):
|
||||||
>>> mute_string("r'abc'")
|
>>> mute_string("r'abc'")
|
||||||
"r'xxx'"
|
"r'xxx'"
|
||||||
"""
|
"""
|
||||||
# String modifiers (e.g. u or r)
|
# NOTE(sigmavirus24): If there are string modifiers (e.g., b, u, r)
|
||||||
|
# use the last "character" to determine if we're using single or double
|
||||||
|
# quotes and then find the first instance of it
|
||||||
start = text.index(text[-1]) + 1
|
start = text.index(text[-1]) + 1
|
||||||
end = len(text) - 1
|
end = len(text) - 1
|
||||||
# Triple quotes
|
# Check for triple-quoted strings
|
||||||
if text[-3:] in ('"""', "'''"):
|
if text[-3:] in ('"""', "'''"):
|
||||||
start += 2
|
start += 2
|
||||||
end -= 2
|
end -= 2
|
||||||
|
|
|
||||||
|
|
@ -209,3 +209,43 @@ def test_inside_multiline():
|
||||||
assert file_processor.line_number == 10
|
assert file_processor.line_number == 10
|
||||||
|
|
||||||
assert file_processor.multiline is False
|
assert file_processor.multiline is False
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('string, expected', [
|
||||||
|
('""', '""'),
|
||||||
|
("''", "''"),
|
||||||
|
('"a"', '"x"'),
|
||||||
|
("'a'", "'x'"),
|
||||||
|
('"x"', '"x"'),
|
||||||
|
("'x'", "'x'"),
|
||||||
|
('"abcdef"', '"xxxxxx"'),
|
||||||
|
("'abcdef'", "'xxxxxx'"),
|
||||||
|
('""""""', '""""""'),
|
||||||
|
("''''''", "''''''"),
|
||||||
|
('"""a"""', '"""x"""'),
|
||||||
|
("'''a'''", "'''x'''"),
|
||||||
|
('"""x"""', '"""x"""'),
|
||||||
|
("'''x'''", "'''x'''"),
|
||||||
|
('"""abcdef"""', '"""xxxxxx"""'),
|
||||||
|
("'''abcdef'''", "'''xxxxxx'''"),
|
||||||
|
('"""xxxxxx"""', '"""xxxxxx"""'),
|
||||||
|
("'''xxxxxx'''", "'''xxxxxx'''"),
|
||||||
|
])
|
||||||
|
def test_mutate_string(string, expected):
|
||||||
|
"""Verify we appropriately mutate the string to sanitize it."""
|
||||||
|
actual = processor.mutate_string(string)
|
||||||
|
assert expected == actual
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('string, expected', [
|
||||||
|
(' ', 4),
|
||||||
|
(' ', 6),
|
||||||
|
('\t', 8),
|
||||||
|
('\t\t', 16),
|
||||||
|
(' \t', 8),
|
||||||
|
(' \t', 16),
|
||||||
|
])
|
||||||
|
def test_expand_indent(string, expected):
|
||||||
|
"""Verify we correctly measure the amount of indentation."""
|
||||||
|
actual = processor.expand_indent(string)
|
||||||
|
assert expected == actual
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue