← Back to team overview

dulwich-users team mailing list archive

Re: [RFC/PATCH] unittest2 fix

 

On Tue, Dec 28, 2010 at 16:36, Augie Fackler <durin42@xxxxxxxxx> wrote:

> On Dec 28, 2010, at 4:41 PM, 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.
> >
> > 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.
>
> I'll take a look at nose stuff (assuming this is a problem) either later
> this week or first thing when I'm back at work next week. Dave, ping me on
> my work email if it's next week and you still want me to examine this, as
> I'm sure I'll forget.


Like I said, I only care that I have an easy way to run a subset of the
tests, so this isn't a big deal for me. You're the main person who cares and
understands about nose, so I'd say you only need to go for it if the itch is
bugging you significantly :)


> >
> > 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
> >
> > try:
> >     from testtools.testcase import TestCase
> > -except ImportError:
> > -    from unittest import TestCase
> > -else:
> >     TestCase.skipException = TestSkipped
> > +except ImportError:
> > +    TestCase = unittest.TestCase
> >
> >
> > class BlackboxTestCase(TestCase):
>
>
>
>

References