Skip to content

Commit

Permalink
Simplify code
Browse files Browse the repository at this point in the history
The list comprehension is shorter than the map() version.
I feel it is also simpler, although that is debatable.

This is consistent with the previous commit.
  • Loading branch information
DimitriPapadopoulos committed Jan 7, 2022
1 parent fd75e95 commit ec29d89
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 13 deletions.
2 changes: 1 addition & 1 deletion codespell_lib/_codespell.py
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@ def ask_for_word_fix(line, wrongword, misspelling, interactivity):
# we ask the user which word to use

r = ''
opt = list(map(lambda x: x.strip(), misspelling.data.split(',')))
opt = [w.strip() for w in misspelling.data.split(',')]
while not r:
print("%s Choose an option (blank for none): " % line, end='')
for i in range(len(opt)):
Expand Down
37 changes: 25 additions & 12 deletions codespell_lib/tests/test_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -393,13 +393,14 @@ def test_case_handling(tmpdir, capsys):
assert f.read().decode('utf-8') == 'this has an ASCII error'


def test_case_handling_in_fixes(tmpdir, capsys):
"""Test that the case of fixes is similar to the mispelled word."""
def _helper_test_case_handling_in_fixes(tmpdir, capsys, reason):
d = str(tmpdir)
with open(op.join(d, 'dictionary_with_reason.txt'), 'w') as f:
fix = 'adopter, adaptor'
reason = 'these are different words!'
f.write(f'adoptor->{fix}, {reason}\n')

with open(op.join(d, 'dictionary.txt'), 'w') as f:
if reason:
f.write(f'adoptor->adopter, adaptor, reason\n')
else:
f.write(f'adoptor->adopter, adaptor,\n')
dictionary_name = f.name

# the mispelled word is entirely lowercase
Expand All @@ -408,33 +409,45 @@ def test_case_handling_in_fixes(tmpdir, capsys):
code, stdout, _ = cs.main('-D', dictionary_name, f.name, std=True)
# all suggested fixes must be lowercase too
assert 'adopter, adaptor' in stdout
# the reason, if any, must not be modified
if reason:
assert 'reason' in stdout

# the mispelled word is capitalized
with open(op.join(d, 'bad.txt'), 'w') as f:
f.write('Early Adoptor\n')
code, stdout, _ = cs.main('-D', dictionary_name, f.name, std=True)
# all suggested fixes must be capitalized too
assert 'Adopter, Adaptor' in stdout
# the reason, however, must not be modified
assert reason in stdout
# the reason, if any, must not be modified
if reason:
assert 'reason' in stdout

# the mispelled word is entirely uppercase
with open(op.join(d, 'bad.txt'), 'w') as f:
f.write('EARLY ADOPTOR\n')
code, stdout, _ = cs.main('-D', dictionary_name, f.name, std=True)
# all suggested fixes must be uppercase too
assert 'ADOPTER, ADAPTOR' in stdout
# the reason, however, must not be modified
assert reason in stdout
# the reason, if any, must not be modified
if reason:
assert 'reason' in stdout

# the mispelled word mixes lowercase and uppercase
with open(op.join(d, 'bad.txt'), 'w') as f:
f.write('EaRlY AdOpToR\n')
code, stdout, _ = cs.main('-D', dictionary_name, f.name, std=True)
# all suggested fixes should be lowercase
assert 'adopter, adaptor' in stdout
# the reason, however, must not be modified
assert reason in stdout
# the reason, if any, must not be modified
if reason:
assert 'reason' in stdout


def test_case_handling_in_fixes(tmpdir, capsys):
"""Test that the case of fixes is similar to the mispelled word."""
_helper_test_case_handling_in_fixes(tmpdir, capsys, reaason=False)
_helper_test_case_handling_in_fixes(tmpdir, capsys, reaason=True)


def test_context(tmpdir, capsys):
Expand Down

0 comments on commit ec29d89

Please sign in to comment.