Skip to content

Commit 31aa9fd

Browse files
committed
Avoid printing autoimport syntax errors
1 parent dbc61cb commit 31aa9fd

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

rope/contrib/autoimport/parse.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def get_names_from_file(
4747
try:
4848
root_node = ast.parse(module.read_bytes())
4949
except SyntaxError as error:
50-
print(error)
50+
logger.debug("Skipping invalid source file %s: %s", module, error)
5151
return
5252
for node in ast.iter_child_nodes(root_node):
5353
if isinstance(node, ast.Assign):

ropetest/contrib/autoimport/parsetest.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import logging
2+
13
from rope.contrib.autoimport import parse
24
from rope.contrib.autoimport.defs import Name, NameType, PartialName, Source
35

@@ -7,6 +9,17 @@ def test_typing_names(typing_path):
79
assert PartialName("Text", NameType.Variable) in names
810

911

12+
def test_invalid_source_file_is_skipped_without_writing_to_stdout(tmp_path, caplog, capsys):
13+
source = tmp_path / "invalid.py"
14+
source.write_text("€ = 2\n", encoding="utf-8")
15+
16+
with caplog.at_level(logging.DEBUG, logger=parse.__name__):
17+
assert list(parse.get_names_from_file(source)) == []
18+
19+
assert capsys.readouterr().out == ""
20+
assert f"Skipping invalid source file {source}" in caplog.text
21+
22+
1023
def test_find_sys():
1124
names = list(parse.get_names_from_compiled("sys", Source.BUILTIN))
1225
assert Name("exit", "sys", "sys", Source.BUILTIN, NameType.Function) in names

0 commit comments

Comments
 (0)