0
votes

This is the crash:

Traceback (most recent call last): File "setup.py", line 22, in test_suite = "tests.get_tests", File "/usr/lib/python2.6/distutils/core.py", line 152, in setup dist.run_commands() File "/usr/lib/python2.6/distutils/dist.py", line 975, in run_commands self.run_command(cmd) File "/usr/lib/python2.6/distutils/dist.py", line 995, in run_command cmd_obj.run() File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/setuptools/command/test.py", line 138, in run self.with_project_on_sys_path(self.run_tests) File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/setuptools/command/test.py", line 118, in with_project_on_sys_path func() File "/home/travis/virtualenv/python2.6/lib/python2.6/site-packages/setuptools/command/test.py", line 164, in run_tests testLoader = cks File "/usr/lib/python2.6/unittest.py", line 816, in init self.parseArgs(argv) File "/usr/lib/python2.6/unittest.py", line 843, in parseArgs self.createTests() File "/usr/lib/python2.6/unittest.py", line 849, in createTests self.module) File "/usr/lib/python2.6/unittest.py", line 613, in loadTestsFromNames suites = [self.loadTestsFromName(name, module) for name in names] File "/usr/lib/python2.6/unittest.py", line 598, in loadTestsFromName test = obj() File "/home/travis/build/myproject/foo/tests/init.py", line 7, in get_tests return unittest.TestLoader().discover(start_dir, pattern="test_*.py") AttributeError: 'TestLoader' object has no attribute 'discover'

this is my tests/init.py

import os.path
import unittest


def get_tests():
    start_dir = os.path.dirname(__file__)
    return unittest.TestLoader().discover(start_dir, pattern="test_*.py")

in python 2.7, pypy, 3.2, 3.3 works correctly

why is crashing on python 2.6? thanks!

1
owlsayswoot.therandomist.com/2010/07/24/… python2.6 hasn't the discover method, how can i do this "if" in the code for get_test on python -2.7 and +2.7? thanksfj123x
It crashes since discover method is introduced in python 2.7alko

1 Answers

0
votes

use:

from discover import DiscoveringTestLoader


def get_tests():
    start_dir = os.path.dirname(__file__)
    test_loader = DiscoveringTestLoader()
    return test_loader.discover(start_dir, pattern="test_*.py")

install with: pip install discover