summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonny Pfannschmidt <ronny.pfannschmidt@redhat.com>2020-12-13 20:20:31 +0100
committerRonny Pfannschmidt <ronny.pfannschmidt@redhat.com>2020-12-13 20:26:46 +0100
commit212090fdd7caf7976bc3f1dcd083dac04eb83766 (patch)
tree6603cc20ba4b354ed93fcaff7ef5807fddd8bc09
parentb7e655c1259a0d6bce0d94be41a4ae21a2721102 (diff)
downloadsetuptools-scm-212090fdd7caf7976bc3f1dcd083dac04eb83766.tar.gz
fix #507 - use dist.metadata.name and add pyproject support for dist_name
-rw-r--r--src/setuptools_scm/config.py4
-rw-r--r--src/setuptools_scm/integration.py16
-rw-r--r--testing/test_integration.py17
3 files changed, 28 insertions, 9 deletions
diff --git a/src/setuptools_scm/config.py b/src/setuptools_scm/config.py
index 8b8fb8e..c451b90 100644
--- a/src/setuptools_scm/config.py
+++ b/src/setuptools_scm/config.py
@@ -127,7 +127,7 @@ class Configuration(object):
self._tag_regex = _check_tag_regex(value)
@classmethod
- def from_file(cls, name="pyproject.toml"):
+ def from_file(cls, name="pyproject.toml", dist_name=None):
"""
Read Configuration from pyproject.toml (or similar).
Raises exceptions when file is not found or toml is
@@ -137,4 +137,4 @@ class Configuration(object):
with open(name) as strm:
defn = __import__("toml").load(strm)
section = defn.get("tool", {})["setuptools_scm"]
- return cls(**section)
+ return cls(**section, dist_name=dist_name)
diff --git a/src/setuptools_scm/integration.py b/src/setuptools_scm/integration.py
index ffd4521..50eb962 100644
--- a/src/setuptools_scm/integration.py
+++ b/src/setuptools_scm/integration.py
@@ -16,8 +16,12 @@ def version_keyword(dist, keyword, value):
assert (
"dist_name" not in value
), "dist_name may not be specified in the setup keyword "
- trace("dist name", dist, dist.name)
- dist_name = dist.name if dist.name != 0 else None
+
+ trace(
+ "version keyword",
+ vars(dist.metadata),
+ )
+ dist_name = dist.metadata.name
config = Configuration(dist_name=dist_name, **value)
dist.metadata.version = _get_version(config)
@@ -45,9 +49,13 @@ def _args_from_toml(name="pyproject.toml"):
def infer_version(dist):
-
+ trace(
+ "finalize hook",
+ vars(dist.metadata),
+ )
+ dist_name = dist.metadata.name
try:
- config = Configuration.from_file()
+ config = Configuration.from_file(dist_name=dist_name)
except Exception:
return trace_exception()
dist.metadata.version = _get_version(config)
diff --git a/testing/test_integration.py b/testing/test_integration.py
index 446aac0..1c87108 100644
--- a/testing/test_integration.py
+++ b/testing/test_integration.py
@@ -31,12 +31,14 @@ fallback_version = "12.34"
def test_pyproject_support_with_git(tmpdir, monkeypatch, wd):
- monkeypatch.delenv("SETUPTOOLS_SCM_DEBUG")
+ pytest.importorskip("toml")
pkg = tmpdir.join("wd")
pkg.join("pyproject.toml").write("""[tool.setuptools_scm]""")
- pkg.join("setup.py").write("__import__('setuptools').setup()")
+ pkg.join("setup.py").write(
+ "__import__('setuptools').setup(name='setuptools_scm_example')"
+ )
res = do((sys.executable, "setup.py", "--version"), pkg)
- assert res == "0.1.dev0"
+ assert res.endswith("0.1.dev0")
def test_pretend_version(tmpdir, monkeypatch, wd):
@@ -46,6 +48,15 @@ def test_pretend_version(tmpdir, monkeypatch, wd):
assert wd.get_version(dist_name="ignored") == "1.0.0"
+def test_pretend_version_named_pyproject_integration(tmpdir, monkeypatch, wd):
+ test_pyproject_support_with_git(tmpdir, monkeypatch, wd)
+ monkeypatch.setenv(
+ PRETEND_KEY_NAMED.format(name="setuptools_scm_example".upper()), "3.2.1"
+ )
+ res = do((sys.executable, "setup.py", "--version"), tmpdir / "wd")
+ assert res.endswith("3.2.1")
+
+
def test_pretend_version_named(tmpdir, monkeypatch, wd):
monkeypatch.setenv(PRETEND_KEY_NAMED.format(name="test".upper()), "1.0.0")
monkeypatch.setenv(PRETEND_KEY_NAMED.format(name="test2".upper()), "2.0.0")