summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>2010-08-26 11:41:18 +0200
committerRonny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>2010-08-26 11:41:18 +0200
commitd47319df16adfc63eacc8860b7c95c1467ad490b (patch)
treea561a319f72bb98b7ae46c04f82b2a682b6771ef
parent4e02c20289fa9bf3f580633a7b894f0c3ae0bd3a (diff)
downloadsetuptools-scm-d47319df16adfc63eacc8860b7c95c1467ad490b.tar.gz
fix missing cachefile handling and recreate cachefile from PKG-INFO if required
-rw-r--r--hgdistver.py4
-rw-r--r--test_hgdistver.py6
2 files changed, 8 insertions, 2 deletions
diff --git a/hgdistver.py b/hgdistver.py
index ff7724c..0ada2f0 100644
--- a/hgdistver.py
+++ b/hgdistver.py
@@ -50,7 +50,7 @@ def tags_to_versions(tags):
def version_from_cachefile(root, cachefile=None):
#XXX: for now we ignore root
- if not cachefile:
+ if not cachefile or not os.path.exists(cachefile):
return
#replaces 'with open()' from py2.6
fd = open(cachefile)
@@ -155,7 +155,7 @@ def version_from_archival(root, cachefile=None):
def version_from_sdist_pkginfo(root, cachefile=None):
pkginfo = os.path.join(root, 'PKG-INFO')
- if cachefile is None and os.path.exists(pkginfo):
+ if os.path.exists(pkginfo):
data = _data_from_archival(pkginfo)
version = data.get('Version')
if version != 'UNKNOWN':
diff --git a/test_hgdistver.py b/test_hgdistver.py
index 9571b93..9314651 100644
--- a/test_hgdistver.py
+++ b/test_hgdistver.py
@@ -138,5 +138,11 @@ def test_cachefile_join(monkeypatch):
monkeypatch.setattr(hgdistver, 'methods', [assert_join])
hgdistver.get_version(root='tmp', cachefile='cachefile')
+def test_recreate_cachefile_from_pkginfo(tmpdir):
+ tmpdir.join('PKG-INFO').write('Version: 0.1')
+ assert not tmpdir.join('cachefile.txt').check()
+ ver = get_version(tmpdir, cachefile='cachefile.txt')
+ assert ver == '1.0'
+ assert tmpdir.join('cachefile.txt').check()