diff --git a/circup.py b/circup.py index f8d40b1..cb2d6aa 100644 --- a/circup.py +++ b/circup.py @@ -935,7 +935,7 @@ def libraries_from_imports(code_py, mod_names): :param str code_py: Full path of the code.py file :return: sequence of library names """ - imports = [info.name for info in findimports.find_imports(code_py)] + imports = [info.name.split(".", 1)[0] for info in findimports.find_imports(code_py)] return [r for r in imports if r in mod_names] diff --git a/tests/import_styles.py b/tests/import_styles.py new file mode 100644 index 0000000..e41c6f2 --- /dev/null +++ b/tests/import_styles.py @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: 2021 Jeff Epler for Adafruit Industries +# +# SPDX-License-Identifier: MIT +# pylint: disable=all +import adafruit_bus_device +from adafruit_button import Button +import adafruit_esp32spi.adafruit_esp32spi_socket as socket +import adafruit_hid.consumer_control diff --git a/tests/test_circup.py b/tests/test_circup.py index bfca78d..1b6967d 100644 --- a/tests/test_circup.py +++ b/tests/test_circup.py @@ -27,6 +27,7 @@ SOFTWARE. import os import ctypes import json +import pathlib from unittest import mock @@ -912,3 +913,27 @@ def test_show_match_py_command(): result = runner.invoke(circup.show, ["py"]) assert result.exit_code == 0 assert "0 shown" in result.output + + +def test_libraries_from_imports(): + """Ensure that various styles of import all work""" + mod_names = [ + "adafruit_bus_device", + "adafruit_button", + "adafruit_display_shapes", + "adafruit_display_text", + "adafruit_esp32spi", + "adafruit_hid", + "adafruit_oauth2", + "adafruit_requests", + "adafruit_touchscreen", + ] + test_file = str(pathlib.Path(__file__).parent / "import_styles.py") + result = circup.libraries_from_imports(test_file, mod_names) + print(result) + assert result == [ + "adafruit_bus_device", + "adafruit_button", + "adafruit_esp32spi", + "adafruit_hid", + ]