diff options
| -rw-r--r-- | setuptools_scm/__init__.py | 7 | ||||
| -rw-r--r-- | testing/test_functions.py | 9 |
2 files changed, 14 insertions, 2 deletions
diff --git a/setuptools_scm/__init__.py b/setuptools_scm/__init__.py index 9e5a9eb..42f8169 100644 --- a/setuptools_scm/__init__.py +++ b/setuptools_scm/__init__.py @@ -30,13 +30,16 @@ def version_from_scm(root): def dump_version(root, version, write_to): if not write_to: return - target = os.path.join(root, write_to) + target = os.path.normpath(os.path.join(root, write_to)) if target.endswith('.txt'): dump = version elif target.endswith('.py'): dump = PYTHON_TEMPLATE.format(version=version) else: - raise ValueError('bad file format: ' + os.path.splitext(target)) + raise ValueError("bad file format: '%s' (of %s) " % ( + os.path.splitext(target)[1], + target + )) with open(target, 'w') as fp: fp.write(dump) diff --git a/testing/test_functions.py b/testing/test_functions.py index fd1724f..ace82fb 100644 --- a/testing/test_functions.py +++ b/testing/test_functions.py @@ -1,5 +1,6 @@ import pytest import pkg_resources +from setuptools_scm import dump_version from setuptools_scm.version import guess_next_version, meta, format_version @@ -47,3 +48,11 @@ def test_format_version(version, monkeypatch, scheme, expected): version, version_scheme=vs, local_scheme=ls) == expected + + +def test_dump_version_doesnt_bail_on_value_error(tmpdir): + write_to = "VERSION" + version = VERSIONS['exact'] + with pytest.raises(ValueError) as exc_info: + dump_version(tmpdir.strpath, version, write_to) + assert str(exc_info.value).startswith("bad file format:") |
