diff --git a/.gitignore b/.gitignore
index 3e3f062..6184b9a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
nose-0.11.3.tar.gz
+nose-0.11.4.tar.gz
diff --git a/python-nose-r708-through-r111-py27-fixes.patch b/python-nose-r708-through-r111-py27-fixes.patch
deleted file mode 100644
index b94af65..0000000
--- a/python-nose-r708-through-r111-py27-fixes.patch
+++ /dev/null
@@ -1,316 +0,0 @@
-diff -r 1b69f8a7f836 -r 7168c74ebb2e functional_tests/doc_tests/test_init_plugin/init_plugin.rst
---- a/functional_tests/doc_tests/test_init_plugin/init_plugin.rst Fri Mar 05 15:31:57 2010 -0500
-+++ b/functional_tests/doc_tests/test_init_plugin/init_plugin.rst Wed Jul 07 10:31:01 2010 -0400
-@@ -24,6 +24,7 @@
-
- >>> import unittest
- >>> class TestConfigurableWidget(unittest.TestCase):
-+ ... longMessage = False
- ... def setUp(self):
- ... self.widget = ConfigurableWidget()
- ... def test_can_frobnicate(self):
-diff -r 1b69f8a7f836 -r 7168c74ebb2e functional_tests/doc_tests/test_xunit_plugin/test_skips.rst
---- a/functional_tests/doc_tests/test_xunit_plugin/test_skips.rst Fri Mar 05 15:31:57 2010 -0500
-+++ b/functional_tests/doc_tests/test_xunit_plugin/test_skips.rst Wed Jul 07 10:31:01 2010 -0400
-@@ -37,4 +37,4 @@
- FAILED (SKIP=1, errors=1, failures=1)
-
- >>> open(outfile, 'r').read() # doctest: +ELLIPSIS
--'.........'
-+'.........'
-diff -r 1b69f8a7f836 -r 7168c74ebb2e functional_tests/test_collector.py
---- a/functional_tests/test_collector.py Fri Mar 05 15:31:57 2010 -0500
-+++ b/functional_tests/test_collector.py Wed Jul 07 10:31:01 2010 -0400
-@@ -13,7 +13,7 @@
- self.result = _TextTestResult(
- self.stream, self.descriptions, self.verbosity)
- return self.result
--
-+
-
- class TestNoseTestCollector(unittest.TestCase):
-
-@@ -27,7 +27,7 @@
- warnings.filterwarnings(action='ignore',
- category=RuntimeWarning,
- module='nose.plugins.manager')
--
-+
- try:
- os.chdir(os.path.join(support, 'issue038'))
- unittest.TestProgram(
-diff -r 1b69f8a7f836 -r 7168c74ebb2e nose/plugins/manager.py
---- a/nose/plugins/manager.py Fri Mar 05 15:31:57 2010 -0500
-+++ b/nose/plugins/manager.py Wed Jul 07 10:31:01 2010 -0400
-@@ -182,7 +182,7 @@
- """Null Plugin manager that has no plugins."""
- interface = IPluginInterface
- def __init__(self):
-- self.plugins = ()
-+ self._plugins = self.plugins = ()
-
- def __iter__(self):
- return ()
-diff -r 1b69f8a7f836 -r 7168c74ebb2e nose/plugins/multiprocess.py
---- a/nose/plugins/multiprocess.py Fri Mar 05 15:31:57 2010 -0500
-+++ b/nose/plugins/multiprocess.py Wed Jul 07 10:31:01 2010 -0400
-@@ -459,7 +459,7 @@
- log.debug("Active plugins worker %s: %s", ix, config.plugins._plugins)
- loader = loaderClass(config=config)
- loader.suiteClass.suiteClass = NoSharedFixtureContextSuite
--
-+
- def get():
- case = testQueue.get(timeout=config.multiprocess_timeout)
- return case
-diff -r 1b69f8a7f836 -r 7168c74ebb2e nose/result.py
---- a/nose/result.py Fri Mar 05 15:31:57 2010 -0500
-+++ b/nose/result.py Wed Jul 07 10:31:01 2010 -0400
-@@ -76,6 +76,13 @@
- test.passed = False
- self.printLabel('ERROR')
-
-+ # override to bypass changes in 2.7
-+ def getDescription(self, test):
-+ if self.descriptions:
-+ return test.shortDescription() or str(test)
-+ else:
-+ return str(test)
-+
- def printLabel(self, label, err=None):
- # Might get patched into a streamless result
- stream = getattr(self, 'stream', None)
-diff -r 1b69f8a7f836 -r 7168c74ebb2e nose/suite.py
---- a/nose/suite.py Fri Mar 05 15:31:57 2010 -0500
-+++ b/nose/suite.py Wed Jul 07 10:31:01 2010 -0400
-@@ -50,22 +50,30 @@
- """Initialize the suite. tests may be an iterable or a generator
- """
- self._set_tests(tests)
--
-+
- def __iter__(self):
- return iter(self._tests)
--
-+
- def __repr__(self):
- return "<%s tests=generator (%s)>" % (
- _strclass(self.__class__), id(self))
-
- def __hash__(self):
- return object.__hash__(self)
--
-+
- __str__ = __repr__
-
- def addTest(self, test):
- self._precache.append(test)
-
-+ # added to bypass run changes in 2.7's unittest
-+ def run(self, result):
-+ for test in self._tests:
-+ if result.shouldStop:
-+ break
-+ test(result)
-+ return result
-+
- def __nonzero__(self):
- log.debug("tests in %s?", id(self))
- if self._precache:
-@@ -108,7 +116,7 @@
- "Access the tests in this suite. Access is through a "
- "generator, so iteration may not be repeatable.")
-
--
-+
- class ContextSuite(LazySuite):
- """A suite with context.
-
-@@ -118,7 +126,7 @@
- The context may be explicitly passed. If it is not, a context (or
- nested set of contexts) will be constructed by examining the tests
- in the suite.
-- """
-+ """
- failureException = unittest.TestCase.failureException
- was_setup = False
- was_torndown = False
-@@ -133,7 +141,7 @@
- packageSetup = ('setup_package', 'setupPackage', 'setUpPackage')
- packageTeardown = ('teardown_package', 'teardownPackage',
- 'tearDownPackage')
--
-+
- def __init__(self, tests=(), context=None, factory=None,
- config=None, resultProxy=None, can_split=True):
- log.debug("Context suite for %s (%s) (%s)", tests, context, id(self))
-@@ -159,7 +167,7 @@
- return '%s:%s' % (repr(self), self.error_context)
- else:
- return repr(self)
--
-+
- def __hash__(self):
- return object.__hash__(self)
-
-@@ -171,7 +179,7 @@
- """Hook for replacing error tuple output
- """
- return sys.exc_info()
--
-+
- def _exc_info(self):
- """Bottleneck to fix up IronPython string exceptions
- """
-@@ -189,6 +197,9 @@
- """Run tests in suite inside of suite fixtures.
- """
- # proxy the result for myself
-+ log.debug("suite %s (%s) run called, tests: %s", id(self), self, self._tests)
-+ #import pdb
-+ #pdb.set_trace()
- if self.resultProxy:
- result, orig = self.resultProxy(result, self), result
- else:
-@@ -252,7 +263,7 @@
- if ctx_callback is None:
- return fixt
- return ctx_callback(context, fixt)
--
-+
- def setUp(self):
- log.debug("suite %s setUp called, tests: %s", id(self), self._tests)
- if not self:
-@@ -339,7 +350,7 @@
- self.teardownContext(ancestor)
- else:
- self.teardownContext(context)
--
-+
- def teardownContext(self, context):
- log.debug("%s teardown context %s", self, context)
- if self.factory:
-@@ -413,7 +424,7 @@
- except MixedContextError:
- return self.makeSuite(self.mixedSuites(tests), None, **kw)
- return self.makeSuite(tests, context, **kw)
--
-+
- def ancestry(self, context):
- """Return the ancestry of the context (that is, all of the
- packages and modules containing the context), in order of
-@@ -436,7 +447,7 @@
- raise TypeError("%s has no ancestors?" % context)
- while ancestors:
- log.debug(" %s ancestors %s", context, ancestors)
-- yield resolve_name('.'.join(ancestors))
-+ yield resolve_name('.'.join(ancestors))
- ancestors.pop()
-
- def findContext(self, tests):
-@@ -508,7 +519,7 @@
- continue
- if test_ctx is ancestor:
- common.append(test)
-- continue
-+ continue
- for test_ancestor in self.ancestry(test_ctx):
- if test_ancestor is ancestor:
- common.append(test)
-@@ -520,7 +531,7 @@
- suite = self.makeSuite(common, ancestor)
- tail = remain
- return [suite] + self.mixedSuites(tail)
--
-+
- def wrapTests(self, tests):
- log.debug("wrap %s", tests)
- if callable(tests) or isinstance(tests, unittest.TestSuite):
-@@ -557,7 +568,7 @@
- """Wraps suite and calls final function after suite has
- executed. Used to call final functions in cases (like running in
- the standard test runner) where test running is not under nose's
-- control.
-+ control.
- """
- def __init__(self, suite, finalize):
- self.suite = suite
-@@ -566,6 +577,10 @@
- def __call__(self, *arg, **kw):
- return self.run(*arg, **kw)
-
-+ # 2.7 compat
-+ def __iter__(self):
-+ return iter(self.suite)
-+
- def run(self, *arg, **kw):
- try:
- return self.suite(*arg, **kw)
-diff -r 1b69f8a7f836 -r 7168c74ebb2e unit_tests/test_logcapture_plugin.py
---- a/unit_tests/test_logcapture_plugin.py Fri Mar 05 15:31:57 2010 -0500
-+++ b/unit_tests/test_logcapture_plugin.py Wed Jul 07 10:31:01 2010 -0400
-@@ -1,4 +1,3 @@
--
- import sys
- from optparse import OptionParser
- from nose.config import Config
-@@ -8,6 +7,11 @@
- from logging import StreamHandler
- import unittest
-
-+if sys.version_info >= (2, 7):
-+ py27 = True
-+else:
-+ py27 = False
-+
- class TestLogCapturePlugin(object):
-
- def test_enabled_by_default(self):
-@@ -81,25 +85,30 @@
- options, args = parser.parse_args(['--logging-clear-handlers'])
- c.configure(options, Config())
- eq_(c.clear, True)
--
-- def mktest():
-+
-+ def mktest():
- class TC(unittest.TestCase):
- def runTest(self):
- pass
- test = TC()
- return test
--
-+
- logging.getLogger().addHandler(StreamHandler(sys.stdout))
- log = logging.getLogger("dummy")
- log.addHandler(StreamHandler(sys.stdout))
--
-+
- c.start()
- c.beforeTest(mktest())
- c.end()
--
-- eq_([str(c.__class__) for c in logging.getLogger().handlers],
-- ['nose.plugins.logcapture.MyMemoryHandler'])
-- eq_([str(c.__class__) for c in logging.getLogger("dummy").handlers],
-+
-+
-+ if py27:
-+ expect = [""]
-+ else:
-+ expect = ['nose.plugins.logcapture.MyMemoryHandler']
-+ eq_([str(c.__class__) for c in logging.getLogger().handlers],
-+ expect)
-+ eq_([str(c.__class__) for c in logging.getLogger("dummy").handlers],
- [])
-
- def test_custom_formatter(self):
-@@ -112,7 +121,7 @@
- records = c.formatLogRecords()
- eq_(1, len(records))
- eq_("++Hello++", records[0])
--
-+
- def test_logging_filter(self):
- env = {'NOSE_LOGFILTER': 'foo,bar'}
- c = LogCapture()
diff --git a/python-nose.spec b/python-nose.spec
index 1018124..b45e614 100644
--- a/python-nose.spec
+++ b/python-nose.spec
@@ -9,8 +9,8 @@
%global with_docs 0
Name: python-nose
-Version: 0.11.3
-Release: 5%{?dist}
+Version: 0.11.4
+Release: 1%{?dist}
Summary: A discovery-based unittest extension for Python
Group: Development/Languages
@@ -19,12 +19,6 @@ URL: http://somethingaboutorange.com/mrl/projects/nose/
Source0: http://somethingaboutorange.com/mrl/projects/nose/nose-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-# 2.7 compatibility fixes
-# Extracted from upstream scm using:
-# hg diff -r 708 -r 711
-# and eliminating the hunk relating to test.sh
-Patch0: python-nose-r708-through-r111-py27-fixes.patch
-
BuildArch: noarch
BuildRequires: python2-devel
%if 0%{?fedora} && 0%{?fedora} < 13
@@ -64,7 +58,6 @@ Documentation for Nose
%prep
%setup -q -n %{upstream_name}-%{version}
-%patch0 -p1
dos2unix examples/attrib_plugin.py
@@ -111,6 +104,9 @@ rm -rf %{buildroot}
%endif # with_docs
%changelog
+* Thu Oct 21 2010 Luke Macken - 0.11.4-1
+- Update to 0.11.4 (#3630722)
+
* Wed Jul 21 2010 David Malcolm - 0.11.3-5
- add support for building without docs, to avoid a circular build-time
dependency between this and python-sphinx; disable docs subpackage for now
diff --git a/sources b/sources
index 6fd0ef2..7e74d66 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-fbf6bc7b7c2bbb535d8ea9a931a1e65b nose-0.11.3.tar.gz
+230a3dfc965594a06ce2d63def9f0d98 nose-0.11.4.tar.gz