diff --git a/precli/parsers/python.py b/precli/parsers/python.py index 17b9ba3a..d2f1aa98 100644 --- a/precli/parsers/python.py +++ b/precli/parsers/python.py @@ -306,8 +306,8 @@ def unparse_import_from_statement(self, imports: tuple) -> str: return f"from {package} import {', '.join(modules)}" def importlib_import_module(self, call: Call) -> dict: - name = call.get_argument(position=0, name="name").value - package = call.get_argument(position=1, name="package").value + name = call.get_argument(position=0, name="name").value_str + package = call.get_argument(position=1, name="package").value_str if package is None: return name subpkg = len(name) - len(name.lstrip(".")) - 1 diff --git a/tests/unit/rules/python/stdlib/hashlib/examples/hashlib_md5_importlib.py b/tests/unit/rules/python/stdlib/hashlib/examples/hashlib_md5_importlib.py new file mode 100644 index 00000000..91fa940f --- /dev/null +++ b/tests/unit/rules/python/stdlib/hashlib/examples/hashlib_md5_importlib.py @@ -0,0 +1,10 @@ +# level: ERROR +# start_line: 10 +# end_line: 10 +# start_column: 0 +# end_column: 11 +import importlib + + +hashlib = importlib.import_module("hashlib") +hashlib.md5() diff --git a/tests/unit/rules/python/stdlib/hashlib/test_hashlib_weak_hash.py b/tests/unit/rules/python/stdlib/hashlib/test_hashlib_weak_hash.py index cfa7c5a9..ab18c142 100644 --- a/tests/unit/rules/python/stdlib/hashlib/test_hashlib_weak_hash.py +++ b/tests/unit/rules/python/stdlib/hashlib/test_hashlib_weak_hash.py @@ -43,6 +43,7 @@ def test_rule_meta(self): "hashlib_md4.py", "hashlib_md5.py", "hashlib_md5_as_identifier.py", + "hashlib_md5_importlib.py", "hashlib_md5_usedforsecurity_true.py", "hashlib_new_blake2b.py", "hashlib_new_blake2s.py",