1. PyPA
  2. Python Packaging Authority Projects
  3. setuptools
Issue #180 resolved

3.4 release fails tests

Felix Yan
created an issue

The first problem I encountered is:

python setup.py test just fails before running any tests. Commit related: https://bitbucket.org/pypa/setuptools/commits/affa32a2d30a1b1c0c29983aa21f4f48312b7edc

Traceback:

Traceback (most recent call last):
  File "setup.py", line 217, in <module>
    dist = setuptools.setup(**setup_params)
  File "/usr/lib/python3.4/distutils/core.py", line 149, in setup
    dist.run_commands()
  File "/usr/lib/python3.4/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.4/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "setup.py", line 68, in run
    _test.run(self)
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/command/test.py", line 139, in run
    self.with_project_on_sys_path(self.run_tests)
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/command/test.py", line 120, in with_project_on_sys_path
    func()
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/command/test.py", line 161, in run_tests
    runner_ep = EntryPoint.parse("x=" + self.test_runner)
TypeError: Can't convert 'NoneType' object to str implicitly

After digging up a little bit, I tried out -r "unittest:TextTestRunner" as a workaround. (So I suggest this becomes a default value)

A second problem is: 2 tests fail:

======================================================================
ERROR: test_setup_requires (setuptools.tests.test_easy_install.TestUserInstallTest)
Regression test for Distribute issue #318
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/tests/test_easy_install.py", line 242, in test_setup_requires
    run_setup(test_setup_py, ['install'])
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/sandbox.py", line 50, in run_setup
    lambda: execfile(
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/sandbox.py", line 100, in run
    return func()
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/sandbox.py", line 52, in <lambda>
    {'__file__':setup_script, '__name__':'__main__'}
  File "setup.py", line 2, in <module>
  File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/command/install.py", line 57, in run
    if not self._called_from_setup(inspect.currentframe()):
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/command/install.py", line 81, in _called_from_setup
    res = inspect.getouterframes(run_frame)[2]
  File "/usr/lib/python2.7/inspect.py", line 1033, in getouterframes
    framelist.append((frame,) + getframeinfo(frame, context))
  File "/usr/lib/python2.7/inspect.py", line 1008, in getframeinfo
    lines, lnum = findsource(frame)
  File "/usr/lib/python2.7/inspect.py", line 580, in findsource
    if pat.match(lines[lnum]): break
IndexError: list index out of range

======================================================================
ERROR: test_test (setuptools.tests.test_test.TestTestTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/tests/test_test.py", line 121, in test_test
    cmd.run()
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/command/test.py", line 139, in run
    self.with_project_on_sys_path(self.run_tests)
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/command/test.py", line 120, in with_project_on_sys_path
    func()
  File "/build/python-setuptools/src/setuptools-3.4/setuptools/command/test.py", line 161, in run_tests
    runner_ep = EntryPoint.parse("x=" + self.test_runner)
TypeError: cannot concatenate 'str' and 'NoneType' objects

----------------------------------------------------------------------
Ran 131 tests in 1.090s

FAILED (errors=2, skipped=7)

Python 2.7 and 3.4 fail on the same tests with same traceback. The second test (for test itself) indicates the first problem I mentioned above, and I've no idea about the other...

Comments (7)

  1. Jason R. Coombs

    There are two issues here. The first is that the travis-run test suite didn't catch the failure. I'm not sure why that is, but it probably relates to the switch to running the tests using pytest.

    More importantly, however, is the issue that the implementation now fails. I'll address that promptly.

  2. Jason R. Coombs

    Felix Yan Yes, I did consider that approach in my tests. I wanted to avoid special-casing the test for that attribute and take advantage of the default value (None) for the parameter. I didn't properly consider the implications of the entry-point-style resolution.

  3. Log in to comment