diff options
author | Ronny Pfannschmidt <ronny.pfannschmidt@redhat.com> | 2020-12-13 20:20:31 +0100 |
---|---|---|
committer | Ronny Pfannschmidt <ronny.pfannschmidt@redhat.com> | 2020-12-13 20:26:46 +0100 |
commit | 212090fdd7caf7976bc3f1dcd083dac04eb83766 (patch) | |
tree | 6603cc20ba4b354ed93fcaff7ef5807fddd8bc09 | |
parent | b7e655c1259a0d6bce0d94be41a4ae21a2721102 (diff) | |
download | setuptools-scm-212090fdd7caf7976bc3f1dcd083dac04eb83766.tar.gz |
fix #507 - use dist.metadata.name and add pyproject support for dist_name
-rw-r--r-- | src/setuptools_scm/config.py | 4 | ||||
-rw-r--r-- | src/setuptools_scm/integration.py | 16 | ||||
-rw-r--r-- | testing/test_integration.py | 17 |
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") |