summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2016-04-06 09:52:46 +0200
committerRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2016-04-06 09:52:46 +0200
commitf85de3c91686df63b3806a73c5536956132d9334 (patch)
tree85cfc01bfd870d60cf803a3d1de9648e71595200
parent4835e4d00e3a0b83cdbe66f8aa5629f560f00aa6 (diff)
parentff948dcd9973a12a139012d9edc13e572471705f (diff)
downloadsetuptools-scm-f85de3c91686df63b3806a73c5536956132d9334.tar.gz
Merge pull request #85 from esben/master
fix bug when using callable version_scheme
-rw-r--r--setuptools_scm/integration.py4
-rw-r--r--testing/test_regressions.py20
2 files changed, 22 insertions, 2 deletions
diff --git a/setuptools_scm/integration.py b/setuptools_scm/integration.py
index 34f91d1..5254cb0 100644
--- a/setuptools_scm/integration.py
+++ b/setuptools_scm/integration.py
@@ -12,10 +12,10 @@ def version_keyword(dist, keyword, value):
return
if value is True:
value = {}
- if os.path.exists('PKG-INFO'):
- value.pop('root', None)
if getattr(value, '__call__', None):
value = value()
+ if os.path.exists('PKG-INFO'):
+ value.pop('root', None)
dist.metadata.version = get_version(**value)
diff --git a/testing/test_regressions.py b/testing/test_regressions.py
index 4a2d90b..c123753 100644
--- a/testing/test_regressions.py
+++ b/testing/test_regressions.py
@@ -23,3 +23,23 @@ def test_pkginfo_noscmroot(tmpdir, monkeypatch):
do('git init', p.dirpath())
res = do('python setup.py --version', p)
assert res == '1.0'
+
+
+def test_use_scm_version_callable(tmpdir, monkeypatch):
+ """use of callable as use_scm_version argument"""
+ monkeypatch.delenv("SETUPTOOLS_SCM_DEBUG")
+
+ p = tmpdir.ensure('sub/package', dir=1)
+ p.join('setup.py').write(
+ '''from setuptools import setup
+def vcfg():
+ from setuptools_scm.version import guess_next_dev_version
+ def vs(v):
+ return guess_next_dev_version(v)
+ return {"version_scheme": vs}
+setup(use_scm_version=vcfg)
+''')
+ p.join("PKG-INFO").write('Version: 1.0')
+
+ res = do('python setup.py --version', p)
+ assert res == '1.0'