On OpenBSD, I notice that the tests all fail unless the package has been installed (for some reason test suite looks for setuptools-scm instead of setuptools_scm):
============================= test session starts ==============================
platform openbsd5 -- Python 2.7.10 -- py-1.4.23 -- pytest-2.6.1
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/_pytest/main.py", line 82, in wrap_session
INTERNALERROR> config.hook.pytest_sessionstart(session=session)
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/_pytest/core.py", line 413, in __call__
INTERNALERROR> return self._docall(methods, kwargs)
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/_pytest/core.py", line 424, in _docall
INTERNALERROR> res = mc.execute()
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/_pytest/core.py", line 315, in execute
INTERNALERROR> res = method(**kwargs)
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/_pytest/terminal.py", line 285, in pytest_sessionstart
INTERNALERROR> config=self.config, startdir=self.startdir)
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/_pytest/core.py", line 413, in __call__
INTERNALERROR> return self._docall(methods, kwargs)
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/_pytest/core.py", line 424, in _docall
INTERNALERROR> res = mc.execute()
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/_pytest/core.py", line 315, in execute
INTERNALERROR> res = method(**kwargs)
INTERNALERROR> File "/usr/ports/pobj/py-setuptools_scm-1.7.0/setuptools_scm-1.7.0/testing/conftest.py", line 10, in pytest_report_header
INTERNALERROR> version = pkg_resources.get_distribution(pkg).version
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/pkg_resources.py", line 344, in get_distribution
INTERNALERROR> if isinstance(dist,Requirement): dist = get_provider(dist)
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/pkg_resources.py", line 223, in get_provider
INTERNALERROR> return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/pkg_resources.py", line 725, in require
INTERNALERROR> needed = self.resolve(parse_requirements(requirements))
INTERNALERROR> File "/usr/local/lib/python2.7/site-packages/pkg_resources.py", line 628, in resolve
INTERNALERROR> raise DistributionNotFound(req)
INTERNALERROR> DistributionNotFound: setuptools-scm
============================= test session starts ==============================
platform openbsd5 -- Python 2.7.10 -- py-1.4.23 -- pytest-2.6.1
setuptools version 3.4.4
setuptools_scm version 1.7.0
collected 31 items
testing/test_basic_api.py .s....FFFF.......
testing/test_functions.py FFF...........
=================================== FAILURES ===================================
____________________ test_archival_to_version[1.2.2-data3] _____________________
expected = '1.2.2', data = {'tag': 'release-1.2.2'}
@pytest.mark.parametrize('expected,data', sorted(archival_mapping.items()))
def test_archival_to_version(expected, data):
version = archival_to_version(data)
> assert format_version(
version,
version_scheme='guess-next-dev',
local_scheme='node-and-date') == expected
E assert 'release-1.2.2' == '1.2.2'
E - release-1.2.2
E + 1.2.2
testing/test_basic_api.py:87: AssertionError
----------------------------- Captured stdout call -----------------------------
data {'tag': 'release-1.2.2'}
version release-1.2.2
scm version <ScmVersion release-1.2.2 d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version release-1.2.2
local_version
__________________ test_archival_to_version[1.2.2.dev0-data4] __________________
expected = '1.2.2.dev0', data = {'tag': 'release-1.2.2.dev'}
@pytest.mark.parametrize('expected,data', sorted(archival_mapping.items()))
def test_archival_to_version(expected, data):
version = archival_to_version(data)
> assert format_version(
version,
version_scheme='guess-next-dev',
local_scheme='node-and-date') == expected
E assert 'release-1.2.2.dev' == '1.2.2.dev0'
E - release-1.2.2.dev
E + 1.2.2.dev0
testing/test_basic_api.py:87: AssertionError
----------------------------- Captured stdout call -----------------------------
data {'tag': 'release-1.2.2.dev'}
version release-1.2.2.dev
scm version <ScmVersion release-1.2.2.dev d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version release-1.2.2.dev
local_version
____________________________ test_version_from_git _____________________________
wd = <test_basic_api.Wd object at 0x17ba4185c790>
def test_version_from_git(wd):
wd('git init')
wd('git config user.email [email protected]')
wd('git config user.name "a test"')
assert wd.version == '0.0'
wd.write('test.txt', 'test')
wd('git add test.txt')
wd('git commit -m commit')
assert wd.version.startswith('0.1.dev1+')
assert not wd.version.endswith('1-')
wd('git tag v0.1')
> assert wd.version == '0.1'
E assert 'v0.1' == '0.1'
E - v0.1
E ? -
E + 0.1
testing/test_basic_api.py:106: AssertionError
----------------------------- Captured stdout call -----------------------------
cmd 'git init'
out 'Initialized empty Git repository in /tmp/pytest-12/test_version_from_git0/.git/\n'
cmd 'git config user.email [email protected]'
cmd 'git config user.name "a test"'
root '/tmp/pytest-12/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-12/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --verify --quiet HEAD'
ret 1
version 0.0
scm version <ScmVersion 0.0 d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.0
local_version
0.0
cmd 'git add test.txt'
cmd 'git commit -m commit'
out '[master (root-commit) 9cdd030] commit\n 1 file changed, 1 insertion(+)\n create mode 100644 test.txt\n'
root '/tmp/pytest-12/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-12/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --verify --quiet HEAD'
out '9cdd0300c04b4e5362616343bcdea9128a39e1b8\n'
cmd 'git describe --dirty --tags --long'
err 'fatal: No names found, cannot describe anything.\n'
ret 128
cmd 'git rev-list HEAD'
out '9cdd0300c04b4e5362616343bcdea9128a39e1b8\n'
version 0.0
scm version <ScmVersion 0.0 d=1 n=9cdd030 d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.1.dev1
local_version +n9cdd030
0.1.dev1+n9cdd030
root '/tmp/pytest-12/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-12/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --verify --quiet HEAD'
out '9cdd0300c04b4e5362616343bcdea9128a39e1b8\n'
cmd 'git describe --dirty --tags --long'
err 'fatal: No names found, cannot describe anything.\n'
ret 128
cmd 'git rev-list HEAD'
out '9cdd0300c04b4e5362616343bcdea9128a39e1b8\n'
version 0.0
scm version <ScmVersion 0.0 d=1 n=9cdd030 d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.1.dev1
local_version +n9cdd030
0.1.dev1+n9cdd030
cmd 'git tag v0.1'
root '/tmp/pytest-12/test_version_from_git0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-12/test_version_from_git0
found ep .git = setuptools_scm.git:parse
cmd 'git rev-parse --verify --quiet HEAD'
out '9cdd0300c04b4e5362616343bcdea9128a39e1b8\n'
cmd 'git describe --dirty --tags --long'
out 'v0.1-0-g9cdd030\n'
version v0.1
scm version <ScmVersion v0.1 d=None n=g9cdd030 d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version v0.1
local_version
v0.1
___________________________ test_version_from_hg_id ____________________________
wd = <test_basic_api.Wd object at 0x17b986f40250>
def test_version_from_hg_id(wd):
wd('hg init')
assert wd.version == '0.0'
wd.write('test.txt', 'test')
wd('hg add test.txt')
wd('hg commit -m commit -u test -d "0 0"')
assert wd.version.startswith('0.1.dev2+')
# tagging commit is considered the tag
wd('hg tag v0.1 -u test -d "0 0"')
> assert wd.version == '0.1'
E assert 'v0.1' == '0.1'
E - v0.1
E ? -
E + 0.1
testing/test_basic_api.py:129: AssertionError
----------------------------- Captured stdout call -----------------------------
cmd 'hg init'
root '/tmp/pytest-12/test_version_from_hg_id0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-12/test_version_from_hg_id0
found ep .hg = setuptools_scm.hg:parse
cmd 'hg id -i -t'
out '000000000000 tip\n'
tag tip
initial node /tmp/pytest-12/test_version_from_hg_id0
version 0.0
scm version <ScmVersion 0.0 d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.0
local_version
0.0
cmd 'hg add test.txt'
cmd 'hg commit -m commit -u test -d "0 0"'
root '/tmp/pytest-12/test_version_from_hg_id0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-12/test_version_from_hg_id0
found ep .hg = setuptools_scm.hg:parse
cmd 'hg id -i -t'
out '653ed0c70e50 tip\n'
tag tip
cmd 'hg parents --template "{latesttag} {latesttagdistance}"'
out 'null 1'
cmd 'hg st --no-status --change 653ed0c70e50'
out 'test.txt\n'
normalize {'node': '653ed0c70e50', 'dist': 2, 'st': 'test.txt', 'tag': '0.0', 'dirty': False, 'root': '/tmp/pytest-12/test_version_from_hg_id0'}
version 0.0
scm version <ScmVersion 0.0 d=2 n=653ed0c70e50 d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version 0.1.dev2
local_version +n653ed0c70e50
0.1.dev2+n653ed0c70e50
cmd 'hg tag v0.1 -u test -d "0 0"'
root '/tmp/pytest-12/test_version_from_hg_id0'
looking for ep setuptools_scm.parse_scm /tmp/pytest-12/test_version_from_hg_id0
found ep .hg = setuptools_scm.hg:parse
cmd 'hg id -i -t'
out '4e01d61641d6 tip\n'
tag tip
cmd 'hg parents --template "{latesttag} {latesttagdistance}"'
out 'v0.1 1'
cmd 'hg st --no-status --change 4e01d61641d6'
out '.hgtags\n'
normalize {'node': '4e01d61641d6', 'dist': '1', 'st': '.hgtags', 'tag': 'v0.1', 'dirty': False, 'root': '/tmp/pytest-12/test_version_from_hg_id0'}
version v0.1
scm version <ScmVersion v0.1 d=None n=None d=False x={}>
config {'version_scheme': 'guess-next-dev', 'local_scheme': 'node-and-date'}
ep ('setuptools_scm.version_scheme', 'guess-next-dev')
ep ('setuptools_scm.local_scheme', 'node-and-date')
version v0.1
local_version
v0.1
_________________________ test_next_tag[1.1-1.2.dev0] __________________________
tag = '1.1', expected = '1.2.dev0'
@pytest.mark.parametrize('tag, expected', [
('1.1', '1.2.dev0'),
('1.2.dev', '1.2.dev0'),
('1.1a2', '1.1a3.dev0'),
])
def test_next_tag(tag, expected):
version = pkg_resources.parse_version(tag)
> assert guess_next_version(version, 0) == expected
testing/test_functions.py:19:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tag_version = ('00000001', '00000001', '*final'), distance = 0
def guess_next_version(tag_version, distance):
version = str(tag_version)
if '.dev' in version:
prefix, tail = version.rsplit('.dev', 1)
assert tail == '0', 'own dev numbers are unsupported'
return '%s.dev%s' % (prefix, distance)
else:
> prefix, tail = re.match('(.*?)(\d+)$', version).groups()
E AttributeError: 'NoneType' object has no attribute 'groups'
/usr/local/lib/python2.7/site-packages/setuptools_scm/version.py:91: AttributeError
_______________________ test_next_tag[1.2.dev-1.2.dev0] ________________________
tag = '1.2.dev', expected = '1.2.dev0'
@pytest.mark.parametrize('tag, expected', [
('1.1', '1.2.dev0'),
('1.2.dev', '1.2.dev0'),
('1.1a2', '1.1a3.dev0'),
])
def test_next_tag(tag, expected):
version = pkg_resources.parse_version(tag)
> assert guess_next_version(version, 0) == expected
testing/test_functions.py:19:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tag_version = ('00000001', '00000002', '*@', '*final'), distance = 0
def guess_next_version(tag_version, distance):
version = str(tag_version)
if '.dev' in version:
prefix, tail = version.rsplit('.dev', 1)
assert tail == '0', 'own dev numbers are unsupported'
return '%s.dev%s' % (prefix, distance)
else:
> prefix, tail = re.match('(.*?)(\d+)$', version).groups()
E AttributeError: 'NoneType' object has no attribute 'groups'
/usr/local/lib/python2.7/site-packages/setuptools_scm/version.py:91: AttributeError
_______________________ test_next_tag[1.1a2-1.1a3.dev0] ________________________
tag = '1.1a2', expected = '1.1a3.dev0'
@pytest.mark.parametrize('tag, expected', [
('1.1', '1.2.dev0'),
('1.2.dev', '1.2.dev0'),
('1.1a2', '1.1a3.dev0'),
])
def test_next_tag(tag, expected):
version = pkg_resources.parse_version(tag)
> assert guess_next_version(version, 0) == expected
testing/test_functions.py:19:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tag_version = ('00000001', '00000001', '*a', '00000002', '*final'), distance = 0
def guess_next_version(tag_version, distance):
version = str(tag_version)
if '.dev' in version:
prefix, tail = version.rsplit('.dev', 1)
assert tail == '0', 'own dev numbers are unsupported'
return '%s.dev%s' % (prefix, distance)
else:
> prefix, tail = re.match('(.*?)(\d+)$', version).groups()
E AttributeError: 'NoneType' object has no attribute 'groups'
/usr/local/lib/python2.7/site-packages/setuptools_scm/version.py:91: AttributeError
================ 7 failed, 23 passed, 1 skipped in 3.25 seconds ================
I'm just running py.test in the source dir. Is that correct?