Commit 945ca1d3 by finswimmer Committed by Sébastien Eustace

fix (setup_reader): parse arguments when setuptools.setup() is used (#1761) (#1764)

* fix (setup_reader): in `setup.py` the `setup()` method can also be called by `setuptools.setup()`

* fix (setup_reader): make black happy

* fix (setup_reader): skip test for python <3.4
parent 95373099
...@@ -181,10 +181,11 @@ class SetupReader(object): ...@@ -181,10 +181,11 @@ class SetupReader(object):
continue continue
func = value.func func = value.func
if not isinstance(func, ast.Name): if not (isinstance(func, ast.Name) and func.id == "setup") and not (
continue isinstance(func, ast.Attribute)
and func.value.id == "setuptools"
if func.id != "setup": and func.attr == "setup"
):
continue continue
return value, elements return value, elements
......
import setuptools
setuptools.setup(
name="my_package",
version="0.1.2",
author="John Doe",
author_email="john@example.orh",
description="Just a description",
url="https://example.org",
packages=setuptools.find_packages(),
)
...@@ -166,3 +166,14 @@ def test_setup_reader_read_extras_require_with_variables(setup): ...@@ -166,3 +166,14 @@ def test_setup_reader_read_extras_require_with_variables(setup):
assert expected_install_requires == result["install_requires"] assert expected_install_requires == result["install_requires"]
assert expected_extras_require == result["extras_require"] assert expected_extras_require == result["extras_require"]
assert expected_python_requires == result["python_requires"] assert expected_python_requires == result["python_requires"]
@pytest.mark.skipif(not PY35, reason="AST parsing does not work for Python <3.4")
def test_setup_reader_setuptools(setup):
result = SetupReader.read_from_directory(setup("setuptools_setup"))
expected_name = "my_package"
expected_version = "0.1.2"
assert expected_name == result["name"]
assert expected_version == result["version"]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment