1 new commit in tox: https://bitbucket.org/hpk42/tox/commits/4414956b0a64/ Changeset: 4414956b0a64 User: Anthon van der Neut Date: 2013-08-14 08:57:10 Summary: issue_1_empty_setup_py: fix for issue #1: Empty setup.py leads to very obscure error
This was caused by no dist directory being created and listing that directory raising an exception. - added some test for setup.py: - empty - only start of line comment - some code, but no setup() - on error finding the dist - check if empty or comment only setup.py: msg that setup.py is empty - msg to check 'python setup.py sdist' by hand Affected #: 2 files diff -r 2f81a12f84bc87215c4c5862c3555111b5ab1991 -r 4414956b0a64281d79e3fcd986516df154f6efe1 tests/test_z_cmdline.py --- a/tests/test_z_cmdline.py +++ b/tests/test_z_cmdline.py @@ -269,6 +269,54 @@ result = cmd.run("tox", ) assert result.ret == 0 +def test_minimal_setup_py_empty(cmd, initproj): + initproj("pkg123-0.7", filedefs={ + 'tests': {'test_hello.py': "def test_hello(): pass"}, + 'setup.py': """ + """ + , + 'tox.ini': '' + + }) + result = cmd.run("tox", ) + assert result.ret == 1 + result.stdout.fnmatch_lines([ + "*ERROR*empty*", + ]) + +def test_minimal_setup_py_comment_only(cmd, initproj): + initproj("pkg123-0.7", filedefs={ + 'tests': {'test_hello.py': "def test_hello(): pass"}, + 'setup.py': """\n# some comment + + """ + , + 'tox.ini': '' + + }) + result = cmd.run("tox", ) + assert result.ret == 1 + result.stdout.fnmatch_lines([ + "*ERROR*empty*", + ]) + +def test_minimal_setup_py_non_functional(cmd, initproj): + initproj("pkg123-0.7", filedefs={ + 'tests': {'test_hello.py': "def test_hello(): pass"}, + 'setup.py': """ + import sys + + """ + , + 'tox.ini': '' + + }) + result = cmd.run("tox", ) + assert result.ret == 1 + result.stdout.fnmatch_lines([ + "*ERROR*check setup.py*", + ]) + def test_sdist_fails(cmd, initproj): initproj("pkg123-0.7", filedefs={ 'tests': {'test_hello.py': "def test_hello(): pass"}, diff -r 2f81a12f84bc87215c4c5862c3555111b5ab1991 -r 4414956b0a64281d79e3fcd986516df154f6efe1 tox/_cmdline.py --- a/tox/_cmdline.py +++ b/tox/_cmdline.py @@ -321,7 +321,27 @@ action.popen([sys.executable, setup, "sdist", "--formats=zip", "--dist-dir", self.config.distdir, ], cwd=self.config.setupdir) - return self.config.distdir.listdir()[0] + try: + return self.config.distdir.listdir()[0] + except py.error.ENOENT: + # check if empty or comment only + data = [] + with open(str(setup)) as fp: + for line in fp: + if line and line[0] == '#': + continue + data.append(line) + if not ''.join(data).strip(): + self.report.error( + 'setup.py is empty' + ) + raise SystemExit(1) + self.report.error( + 'No dist directory found. Please check setup.py, e.g with:\n'\ + ' python setup.py sdist' + ) + raise SystemExit(1) + def make_emptydir(self, path): if path.check(): Repository URL: https://bitbucket.org/hpk42/tox/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. _______________________________________________ pytest-commit mailing list pytest-commit@python.org http://mail.python.org/mailman/listinfo/pytest-commit