On Tue, Dec 28, 2010 at 14:48, Jelmer Vernooij <[email protected]> wrote:
> On Tue, Dec 28, 2010 at 01:41:17PM -0800, Dave Borowitz wrote: > > I've tested this by running make check in the following configurations: > > -2.6 + unittest2 > > -2.6 + unittest2 + testtools > > -2.7 > > -2.7 + testtools > > > > I'm not sure if we want to support 2.6 without unittest2. Both with and > > without this patch, even if you set the RUNTEST to something else (e.g. > > nosetests), it fails with an ImportError in tests/__init__.py. > s/RUNTEST/TESTRUNNER/ ? > I was setting RUNTEST because nosetests is a standalone script; both that and TESTRUNNER=nose.core fail in the same way. (Which is ok for now, I guess.) > Setting TESTRUNNER to testtools.run and PYTHON to python2.6 I was able to > get the > tests to pass in current trunk. Ok, works for me as well. > > I'm also not sure how to run a single test method from the command line > with > > this new setup. I used to be able to do 'nosetests > > dulwich.tests.test_foo:BarTest.test_baz', but something about the test > > suites has changed in a way that prevents nose from discovering the > test_foo > > module. If my issue is with the nose command line, maybe Augie can help. > Or > > we could add another target to the Makefile; I don't really care either > way. > > > > diff --git a/Makefile b/Makefile > > index 4742d6d..932c8a9 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -4,7 +4,7 @@ PYDOCTOR ?= pydoctor > > ifeq ($(shell $(PYTHON) -c "import sys; print sys.version_info >= (2, > > 7)"),True) > > TESTRUNNER ?= unittest > > else > > -TESTRUNNER ?= unittest2 > > +TESTRUNNER ?= unittest2.__main__ > > endif > > RUNTEST = PYTHONPATH=.:$(PYTHONPATH) $(PYTHON) -m $(TESTRUNNER) > > > > diff --git a/dulwich/tests/__init__.py b/dulwich/tests/__init__.py > > index 909a4cc..58e6b89 100644 > > --- a/dulwich/tests/__init__.py > > +++ b/dulwich/tests/__init__.py > > @@ -21,27 +21,30 @@ > > > > import doctest > > import os > > -import unittest > > import shutil > > import subprocess > > import sys > > import tempfile > > > > -try: > > +if sys.version_info >= (2, 7): > > # If Python itself provides an exception, use that > > + import unittest > > from unittest import SkipTest as TestSkipped > > -except ImportError: > > + from unittest import TestCase > > +else: > > try: > > + import unittest2 as unittest > > from unittest2 import SkipTest as TestSkipped > > except ImportError: > > + import unittest > > from testtools.testcase import TestSkipped > > + TestCase.skipException = TestSkipped > ^^ I think this makes us no longer patch the testtools' TestCase, which its > test runner will use when checking if an exception was a test exception. Good catch. > > try: > > from testtools.testcase import TestCase > > -except ImportError: > > - from unittest import TestCase > > -else: > > TestCase.skipException = TestSkipped > > +except ImportError: > > + TestCase = unittest.TestCase > This seems unnecessarily complex - I think we should be able to fold it > into > the try/except above. > Done. > Cheers, > > Jelmer >
_______________________________________________ Mailing list: https://launchpad.net/~dulwich-users Post to : [email protected] Unsubscribe : https://launchpad.net/~dulwich-users More help : https://help.launchpad.net/ListHelp

