summaryrefslogtreecommitdiff
path: root/testing/test_integration.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/test_integration.py')
-rw-r--r--testing/test_integration.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/testing/test_integration.py b/testing/test_integration.py
new file mode 100644
index 0000000..446aac0
--- /dev/null
+++ b/testing/test_integration.py
@@ -0,0 +1,59 @@
+import sys
+
+import pytest
+
+from setuptools_scm.utils import do
+from setuptools_scm import PRETEND_KEY, PRETEND_KEY_NAMED
+
+
+@pytest.fixture
+def wd(wd):
+ wd("git init")
+ wd("git config user.email test@example.com")
+ wd('git config user.name "a test"')
+ wd.add_command = "git add ."
+ wd.commit_command = "git commit -m test-{reason}"
+ return wd
+
+
+def test_pyproject_support(tmpdir, monkeypatch):
+ pytest.importorskip("toml")
+ monkeypatch.delenv("SETUPTOOLS_SCM_DEBUG")
+ pkg = tmpdir.ensure("package", dir=42)
+ pkg.join("pyproject.toml").write(
+ """[tool.setuptools_scm]
+fallback_version = "12.34"
+"""
+ )
+ pkg.join("setup.py").write("__import__('setuptools').setup()")
+ res = do((sys.executable, "setup.py", "--version"), pkg)
+ assert res == "12.34"
+
+
+def test_pyproject_support_with_git(tmpdir, monkeypatch, wd):
+ monkeypatch.delenv("SETUPTOOLS_SCM_DEBUG")
+ pkg = tmpdir.join("wd")
+ pkg.join("pyproject.toml").write("""[tool.setuptools_scm]""")
+ pkg.join("setup.py").write("__import__('setuptools').setup()")
+ res = do((sys.executable, "setup.py", "--version"), pkg)
+ assert res == "0.1.dev0"
+
+
+def test_pretend_version(tmpdir, monkeypatch, wd):
+ monkeypatch.setenv(PRETEND_KEY, "1.0.0")
+
+ assert wd.get_version() == "1.0.0"
+ assert wd.get_version(dist_name="ignored") == "1.0.0"
+
+
+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")
+ assert wd.get_version(dist_name="test") == "1.0.0"
+ assert wd.get_version(dist_name="test2") == "2.0.0"
+
+
+def test_pretend_version_name_takes_precedence(tmpdir, monkeypatch, wd):
+ monkeypatch.setenv(PRETEND_KEY_NAMED.format(name="test".upper()), "1.0.0")
+ monkeypatch.setenv(PRETEND_KEY, "2.0.0")
+ assert wd.get_version(dist_name="test") == "1.0.0"