Modify python3 path for build and install
[platform/upstream/python-nose.git] / CHANGELOG
1 1.2.1
2
3 - Correct nose.__version__ (#549). Thanks to Chris Withers for the bug report.
4
5 1.2.0
6
7 - Fixed issue where plugins included with `addplugins` keyword could
8   be overridden by built-in plugins (or third-party plugins registered
9   with setuptools) of the same name (#466).
10   Patch by Brendan McCollam
11 - Adds :option:`--cover-xml` and :option:`--cover-xml-file` (#311).
12   Patch by Timothée Peignier.
13 - Adds support for :option:`--cover-branches` (related to #370).
14   Patch by Timothée Peignier.
15 - Fixed Unicode issue on Python 3.1 with coverage (#442)
16 - fixed class level fixture handling in multiprocessing plugin
17 - Clue in the ``unittest`` module so it no longer prints traceback frames for
18   our clones of their simple assertion helpers (#453). Patch by Erik Rose.
19 - Stop using the ``assert`` statement in ``ok_`` and ``eq_`` so they work under
20   ``python -O`` (#504). Patch by Erik Rose.
21 - Add loglevel option to logcapture plugin (#493). Patch by Arach Tchoupani.
22 - Add doctest options flag (#7 from google code tracker). Patch by Michael
23   Forbes.
24 - Add support for using 2to3 with the nosetests setuptools command. Patch by
25   Andrey Golovizin.
26 - Add --cover-min-percentage flag to force test runs without sufficient
27   coverage to fail (#540). Patch by Domen Kožar.
28 - Add travis-ci configuraion (#545). Patch by Domen Kožar.
29 - Call reactor.stop from twisted thread (#301). Patch by Adi Roiban.
30
31
32 1.1.2
33
34 - Fixed regression where the .coverage file was not saved (#439).
35   Patch by Timothée Peignier.
36
37 1.1.1
38
39 - Fixed missing nose.sphinx module in source distribution (#436).
40
41 1.1.0
42
43 - Revised multiprocessing implementation so that it works for test generators
44   (#399). Thanks to Rosen Diankov for the patch.
45 - More fixes to multiprocessing implemented by Buck Golemon and Gary Donovan
46   (also part of #399).
47 - Lots of improvements to the attrib plugin by Bobby Impollonia (#412, #411,
48   #324 and #381)
49 - Code coverage plugin now uses native HTML generation when coverage 3 is
50   installed (#264). Thanks to Timothée Peignier for the patch.
51 - Xunit plugin now shows test run time in fractions of a second (#317)
52 - @attr (from nose.plugins.attrib) can now be used as a class decorator (#292)
53 - Fixes Xunit plugin to handle non-UTF8 characters (#395)
54 - Fixes Xunit plugin for reporting generator tests (#369)
55 - Fixed problems with SkipTest in Python 3.2 (#389)
56 - Fixed bug in doctest plugin under python 3. Thanks to Thomas Kluyver
57   for the patch. (#391)
58 - Fixes mishandling of custom exceptions during failures (#405)
59 - Fixed subtle bug in :option:`--first-package-wins` that made it
60   unpredictable (#293)
61 - Fixes case where teardown_class() was called more than once (#408). Thanks
62   to Heng Liu for the patch.
63 - Fixes coverage module names -- 'cal' used to also match calendar which was a
64   bug (#433)
65 - Fixes capture plugin when exception message contains non-ascii chars (#402)
66 - Fixed bug in tests for twisted tools. Thanks to Thomas Kluyver
67   for the patch.
68 - Makes :option:`--plugins` more succinct when there are no options (#235)
69
70 1.0.0
71
72 - Made nose compatible with python 3. **Huge** thanks to Alex "foogod"
73   Stewart!
74
75 0.11.4
76
77 - Made nose compatible with Python 2.7.
78
79 0.11.3
80
81 - Fixed default plugin manager's use of plugin overriding. Thanks to
82   rob.daylife for the bug report and patch. (#323).
83
84 0.11.2
85
86 - Changed plugin loading so that external plugins loaded via extension
87   points can override builtin plugins with the same name.
88 - Updated multiprocess plugin and nose's packaging to allow multiprocess
89   plugin to work on Windows (#265).
90 - Fixed bug in xunit plugin's interaction with suites and errors in
91   module-level setup. Thanks to Mark McCague for the bug report (#279).
92 - Fixed bug in nose.loader.TestLoader that allowed Test classes that raise
93   exceptions in __init__ to crash the test run (#269).
94 - Fixed bugs in nose's test suite that caused spurious failures on Windows.
95 - Fixed bug in twisted tools: delayed calls were not shut down on
96   reactor stop. Thanks to abbeyj for the patch (#278).
97 - Fixed bug where root log handlers were not cleared. For example, this was
98   emitting unwanted messages when testing Google App Engine websites.
99 - Fixed bug in test names output by xunit plugin. Thanks to Philip
100   Jenvey for the bug report and patch (#280).
101 - Fixed bug in profile plugin that caused stats to fail to print under Python
102   2.5 and later. Thanks to djs at n-cube dot org for the bug report (#285).
103 - Improved logcapture filtering, with default setting to filter out log
104   messages from nose itself. Thanks to gfxmonk for the patch (#277).
105 - The xunit plugin now tags skipped tests with a <skipped> testcase tag, and
106   prevents the XML from containing invalid control characters.
107 - Updated nose to be compatible with python 2.7 (#305).
108 - Updated loading of usage document to allow nose to run from within
109   an egg archive (#288).
110 - Fixed IronPython checks to make nose compatible with more versions
111   of IronPython. Thanks to Kevin Mitchell for the patch (#316).
112
113 0.11.1
114
115 - Fixed bug in xunit plugin xml escaping. Thanks to Nat Williams for the bug
116   report (#266).
117 - Fixed bug in xunit plugin that could cause test run to crash after certain
118   types of errors or actions by other plugins.
119 - Fixed bug in testid plugin that could cause test run to crash after certain
120   types of errors or actions by other plugins.
121 - Fixed bug in collect only plugin that caused it to fail when collecting from
122   test generators.
123 - Fixed some broken html in docs.
124
125 0.11
126
127 - **All new documentation!** nose's documentation is now generated by
128   Sphinx. And thanks to Pam Zerbinos, it is much better organized and easier
129   to use and read.
130 - Two new core commandline options can help with testing namespace
131   packages. :option:`--first-package-wins` is useful when you want to test one
132   part of a namespace package that uses another part; in previous versions of
133   nose, the other part of the namespace package would be evicted from
134   sys.modules when the 2nd loaded. :option:`--traverse-namespace` is useful if
135   you want nose to discover tests across entries in a package's
136   __path__. (This was formerly the default behavior).
137 - To make it easier to use custom plugins without needing setuptools,
138   :func:`nose.core.main` and :func:`nose.core.run` now support an
139   :doc:`addplugins <doc_tests/test_addplugins/test_addplugins>` keyword
140   argument that takes a list of additional plugins to make available. **Note**
141   that adding a plugin to this list **does not** activate or enable the
142   plugin, only makes it available to be enabled via command-line or
143   config file settings.
144 - Thanks to Kevin Mitchell, nose is now more compatible with
145   IronPython. IronPython is still not fully supported, but it should work. If
146   you'd like to improve nose's support for IronPython further, please join the
147   nose developer's list and volunteer to become the IronPython maintainer for
148   nose!
149 - Added multiprocess plugin that allows tests to be run in parallel
150   across multiple processes.
151 - Added logcapture plugin that captures logging messages and prints them with
152   failing tests. Thanks to Max Ischenko for the implementation.
153 - Added optional HTML coverage reports to coverage plugin. Thanks to Augie
154   Fackler for the patch.
155 - Added plugin that enables collection of tests in all modules. Thanks to
156   Peter Fein for the patch (#137).
157 - Added --failed option to testid plugin. When this option is in effect, if
158   any tests failed in the previous test run (so long as testid was active for
159   that test run) only the failed tests will run.
160 - Made it possible to 'yield test' in addition to 'yield test,' from test
161   generators. Thanks to Chad Whitacre for the patch (#230).
162 - Fixed bug that caused traceback inspector to fail when source code file
163   could not be found. Thanks to Philip Jenvey for the bug report and patch
164   (#236).
165 - Fixed some issues limiting compatibility with IronPython. Thanks to Kevin
166   Mitchell for the patch.
167 - Added support for module and test case fixtures in doctest files (#60).
168 - Added --traverse-namespace commandline option that restores old default
169   behavior of following all package __path__ entries when loading tests from
170   packages. Thanks to Philip Jenvey for the patch (#167).
171 - Added --first-package-wins commandline option to better support testing
172   parts of namespace packages. Thanks to Jason Coombs for the bug report
173   (#197).
174 - Added versioned nosetests scripts (#123).
175 - Fixed bug that would cause context teardown to fail to run in some
176   cases. Thanks to John Shaw for the bug report and patch (#234).
177 - Enabled doctest plugin to use variable other than "_" as the default result
178   variable. Thanks to Matt Good for the patch (#163).
179 - Fixed bug that would cause unicode output to crash output capture. Thanks to
180   schickb for the bug report (#227).
181 - Added setUp and tearDown as valid names for module-level fixtures. Thanks to
182   AgilityNerd for the patch (#211).
183 - Fixed bug in list of valid names for package-level fixtures. Thanks to
184   Philip Jenvey for the patch (#237).
185 - Updated man page generation using hacked up manpage writer from
186   docutils sandbox. Thanks grubert@users.sourceforge.net for the
187   original module.
188
189 0.10.4
190
191 - nose is now compatible with python 2.6.
192
193 0.10.3
194
195 - Fixed bug in nosetests setup command that caused an exception to be raised
196   if run with options. Thanks to Philip Jenvey for the bug report (#191).
197 - Raised score of coverage plugin to 200, so that it will execute before
198   default-score plugins, and so be able to catch more import-time code. Thanks
199   to Ned Batchelder for the bug report and patch (#190).
200
201 0.10.2
202
203 - nose now runs under jython (jython svn trunk only at this time). Thanks to
204   Philip Jenvey, Pam Zerbinos and the other pycon sprinters (#160).
205 - Fixed bugs in loader, default plugin manager, and other modules that
206   caused plugin exceptions to be swallowed (#152, #155). Thanks to John J
207   Lee for the bug report and patch.
208 - Added selftest.py script, used to test a non-installed distribution of
209   nose (#49). Thanks to Antoine Pitrou and John J Lee for the bug report and
210   patches.
211 - Fixed bug in nose.importer that caused errors with namespace
212   packages. Thanks to Philip Jenvey for the bug report and patch (#164).
213 - Fixed bug in nose.tools.with_setup that prevented use of multiple
214   @with_setup decorators. Thanks to tlesher for the bug report (#151).
215 - Fixed bugs in handling of context fixtures for tests imported into a
216   package. Thanks to Gary Bernhardt for the bug report (#145).
217 - Fixed bugs in handling of config files and config file options for plugins
218   excluded by a RestrictedPluginManager. Thanks to John J Lee and Philip
219   Jenvey for the bug reports and patches (#158, #166).
220 - Updated ErrorClass exception reporting to be shorter and more clear. Thanks
221   to John J Lee for the patch (#142).
222 - Allowed plugins to load tests from modules starting with '_'. Thanks to John
223   J Lee for the patch (#82).
224 - Updated documentation about building as rpm (#127).
225 - Updated config to make including executable files the default on
226   IronPython as well as on Windows. Thanks to sanxiyn for the bug
227   report and patch (#183).
228 - Fixed a python 2.3 incompatibility in errorclass_failure.rst
229   (#173). Thanks to Philip Jenvey for the bug report and patch.
230 - Classes with metaclasses can now be collected as tests (#153).
231 - Made sure the document tree in the selector plugin test is accurate
232   and tested (#144). Thanks to John J Lee for the bug report and
233   patch.
234 - Fixed stack level used when dropping into pdb in a doctest
235   (#154). Thanks to John J Lee for the bug report and patch.
236 - Fixed bug in ErrorClassPlugin that made some missing keyword
237   argument errors obscure (#159). Thanks to Philip Jenvey for the bug
238   report and patch.
239
240 0.10.1
241
242 - Fixed bug in capture plugin that caused it to record captured output
243   on the test in the wrong attribute (#113).
244 - Fixed bug in result proxy that caused tests to fail if they accessed
245   certain result attibutes directly (#114). Thanks to Neilen Marais
246   for the bug report.
247 - Fixed bug in capture plugin that caused other error formatters
248   changes to be lost if no output was captured (#124). Thanks to
249   someone at ilorentz.org for the bug report.
250 - Fixed several bugs in the nosetests setup command that made some
251   options unusable and the command itself unusable when no options
252   were set (#125, #126, #128). Thanks to Alain Poirier for the bug
253   reports.
254 - Fixed bug in handling of string errors (#130). Thanks to schl... at
255   uni-oldenburg.de for the bug report.
256 - Fixed bug in coverage plugin option handling that prevented
257   --cover-package=mod1,mod2 from working (#117). Thanks to Allen
258   Bierbaum for the patch.
259 - Fixed bug in profiler plugin that prevented output from being
260   produced when output capture was enabled on python 2.5
261   (#129). Thanks to James Casbon for the patch.
262 - Fixed bug in adapting 0.9 plugins to 0.10 (#119 part one). Thanks to
263   John J Lee for the bug report and tests.
264 - Fixed bug in handling of argv in config and plugin test utilities
265   (#119 part two). Thanks to John J Lee for the bug report and patch.
266 - Fixed bug where Failure cases due to invalid test name
267   specifications were passed to plugins makeTest (#120). Thanks to
268   John J Lee for the bug report and patch.
269 - Fixed bugs in doc css that mangled display in small windows. Thanks
270   to Ben Hoyt for the bug report and Michal Kwiatkowski for the fix.
271 - Made it possible to pass a list or comma-separated string as
272   defaultTest to main(). Thanks to Allen Bierbaum for the suggestion
273   and patch.
274 - Fixed a bug in nose.selector and nose.util.getpackage that caused
275   directories with names that are not legal python identifiers to be
276   collected as packages (#143). Thanks to John J Lee for the bug
277   report.
278
279 0.10.0
280
281 - Fixed bug that broke plugins with names containing underscores or
282   hyphens. Thanks to John J Lee for the bug report and patch (Issue
283   #81).
284 - Fixed typo in nose.__all__. Thanks to John J Lee for the bug report.
285 - Fixed handling of test descriptions that are multiline
286   docstrings. Thanks to James Casbon for the patch (Issue #50).
287 - Improved documentation of doctest plugin to make it clear that
288   entities may have doctests, or themselves be tests, but not
289   both. Thanks to John J Lee for the bug report and patch (Issue #84).
290 - Made __file__ available in non-python-module doctests.
291 - Fixed bug that made it impossible for plugins to exclude package
292   directories from test discovery (Issue #89). Thanks to John J Lee
293   for the bug report and patch.
294 - Fixed bug that swallowed TypeError and AttributeError exceptions
295   raised in some plugin calls (Issue #95). Thanks to John J Lee for
296   the bug report.
297 - Fixed inconsistencies in many interfaces and docs. Thanks to John J
298   Lee for many bug reports.
299 - Fixed bugs in rpm generation (Issue #96). Thanks to Mike Verdone for
300   the bug report and http://bugs.python.org/issue644744 for the fix.
301 - Fixed inconsisent use of os.environ in plugin testing
302   utilities. Thanks to John J Lee for the bug report and patch (Issue
303   #97).
304 - Fixed bug in test_address that prevented use of nose.case.Test in
305   doctests (Issue #100). Thanks to John J Lee for the bug report.
306 - Fixed bug in error class plugin that caused string exceptions to be
307   masked (#Issue 101). Thanks to depaula for the bug report.
308 - Fixed bugs in tests and the profiler plugin when running under
309   Windows (Issue #103). Thanks to Sidnei Da Silva for the bug report.
310 - Fixed bugs in plugin calls that caused exception swallowing (Issue
311   #107). Thanks to John L Lee for the bug report and patch.
312 - Added more plugin example doctests. Thanks to Kumar McMillan and
313   John L Lee for patches and lots of help.
314 - Changed default location of id file for TestId plugin from ~/.noseids to
315   .noseids in the configured working directory.
316
317 0.10.0b1
318
319 - Added support for a description attribute on tests in function and
320   method test cases.  Most useful for generators: set the description
321   attribute on the yielded function.
322 - Fixed incorrect signature of addSuccess() method in
323   IPluginInterface. Thanks to nosexunit for the bug report. (Issue
324   #68).
325 - Fixed isclass() function in nose.util so that it will not raise an
326   exception when examining instances that have no accessible __bases__
327   attribute. (Issue #65).
328 - Fixed passing of tests to result; the test itself and not the
329   wrapper was being passed, resulting in test description plugin hooks
330   not being called. (Issue #71).
331 - Fixed bugs in FailureDetail and Capture plugins, and plugin manager
332   and proxy uses of chainable plugin calls. Thanks to Ian Bicking for
333   the bug report (Issue #72).
334 - Improved documentation.
335
336 0.10.0a2
337
338 - Changed entry point name to nose.plugins.0.10 -- dashes and other
339   non-word characters besides . are not allowed in entry point names.
340   (Issue #67)
341 - Fixed loading of plugins from that entry point.
342 - Fixed backwards-compatibility issue in nose.util (is_generator was
343   renamed isgenerator). (Issue #64)
344 - Fixed bug in --logging-config option. Thanks to anton_kr... at yahoo
345   com for the bug report. (Issue #62)
346 - Fixed bug in handling of --where argument: first --where was not
347   passed to loader as workingDir. Thanks to nosexunit for the bug
348   report. (Issue #63).
349
350 0.10.0a1
351
352 - Rewrote test loader to be more drop-in compatible with
353   unittest.TestLoader and to support a more user-friendly command
354   line.
355 - Rewrote test runner and result classes to reduce duplication of effort.
356 - Revised configuration system to be less convoluted.
357 - Added nose.case.TestCase as universal wrapper for all
358   testcases. Plugins always see instances of this class.
359 - Added a management layer to the plugin system, allowing for easy use
360   of different plugin loading schemes. The default manager loads
361   builtin plugins, 0.10 plugins under the setuptools entrypoint
362   nose.plugins.0-10 and provides limited support for legacy plugins
363   loaded under the entrypoint nose.plugins.
364 - Added plugin hooks in all phases of discovery, running and description.
365 - Converted several formely core features to plugins: output capture,
366   assert introspection, pdb, and skipped and deprecated test support.
367 - Added id plugin that allows for easier specification of tests on the
368   command line.
369 - Added ErrorClassPlugin base class to allow for easier authoring of
370   plugins that handle errors, like the builtin skipped and deprecated
371   test plugins.
372 - Added support for loading doctests from non-module files for all
373   supported python versions.
374 - Added score property to plugins to allow plugins to execute in a
375   defined order (higher score execute first).
376 - Expanded nose's own test suite to include a variety of functional tests.
377 - Fixed many bugs.
378
379 0.9.3
380
381 - Added support for user configuration files. Thanks to Antoine Pitrou for the
382   patch.
383 - Fixed bug that caused profiler plugin to leak 0-byte temp files. Thanks to
384   Antoine Pitrou for the patch.
385 - Made usage of temp files in profiler plugin more sensible. Thanks to Michael
386   Sclenker for the bug report.
387 - Fixed bug that stopped loading of twisted TestCase tests. Thanks to Kumar
388   McMillan for the bug report.
389 - Corrected man page location. Thanks to luke macken for the bug report and
390   patch.
391 - Added with_setup to nose.tools.__all__. Thanks to Allen Bierbaum for the bug
392   report.
393 - Altered plugin loading so that builtin plugins can be loaded without
394   setuptools. Thanks to Allen Bierbaum for the suggestion.
395 - Fixed a bug in the doctests plugin that caused an error when multiple
396   exclude arguments were specified. Thanks to mbeachy for the bug report and
397   patch.
398
399 0.9.2
400
401 - Added nosetests setuptools command. Now you can run python setup.py
402   nosetests and have access to all nose features and plugins. Thanks to James
403   Casbon for the patch.
404 - Added make_decorator function to nose.tools. Used to construct decorator
405   functions that are well-behaved and preserve as much of the original
406   function's metadata as possible. Thanks to Antoine Pitrou for the patch.
407 - Added nose.twistedtools, contributed by Antoine Pitrou. This module adds
408   @deferred decorator that makes it simple to write deferred tests, with or
409   without timeouts.
410 - Added monkeypatch to doctests that keeps doctest from stepping on coverage
411   when the two plugins are used together. Thanks to David Avraamides for the
412   bug report.
413 - Added isolation plugin. Use this plugin to automatically restore sys.modules
414   after each test module or package. Thanks to Michal Kwiatkowski for the
415   feature request.
416 - Fixed bug where -vvvv turned off verbose logging instead of making it even
417   more verbose. Thanks to Ian Bicking for the bug report.
418 - Fixed bug where assert inspection would fail when the trailing """ of a
419   docstring was one of the inspected lines. Thanks to cito at online dot de
420   for the bug report.
421 - Updated attrib plugin to allow selection of test methods by attributes of
422   the test case class. Thanks to Jason Hildebrand for the patch.
423 - Improved compatibility with python 2.2. Thanks to Chad Whitacre for the
424   patch.
425 - Fixed bug in handling of options from setup.cfg. Thanks to Kumar McMillan for
426   the patch.
427 - Fixed bug in generator methods, where a generator method using an inline
428   funciton would result in an AttributeError. Thanks to Antoine Pitrou for the
429   bug report.
430 - Updated coverage plugin to ignore lines tagged with #pragma: no cover,
431   matching the behavior of coverage.py on the command line. Thanks to Bill
432   Zingler for the bug report.
433 - Added a man page for nosetests. Thanks to Gustavo Noronha Silva for the
434   request and providing an example.
435
436 0.9.1
437
438 - New function nose.runmodule() finds and runs tests only in a
439   single module, which defaults to __main__ (like unittest.main() or
440   doctest.runmodule()). Thanks Greg Wilson for the suggestion.
441 - Multiple -w (--where) arguments can now be used in one command line,
442   to find and run tests in multiple locations. Thanks Titus Brown for
443   the suggestion.
444 - Multiple --include and --exclude arguments are now accepted in one command
445   line. Thanks Michal Kwiatkowski for the feature request.
446 - Coverage will now include modules not imported by any test when
447   using the new --cover-inclusive switch. Thanks James Casbon for the
448   patch.
449 - module:TestClass test selections now properly select all tests in the test
450   class.
451 - startTest and stopTest are now called in plugins at the beginning and end of
452   test suites, including test modules, as well as individual tests. Thanks
453   Michal Kwiatkowski for the suggestion.
454 - Fix bug in test selection when run as ``python setup.py test``: 'test' was
455   passing through and being used as the test name selection. Thanks Kumar
456   McMillan for the bug report.
457 - Fix bug in handling of -x/--stop option where the test run would stop on
458   skipped or deprecated tests. Thanks Kumar McMillan for the bug report.
459 - Fix bug in loading tests from projects with layouts that place modules in
460   /lib or /src dirs and tests in a parallel /tests dir.
461 - Fix bug in python version detection. Thanks Kevin Dangoor for the bug report
462   and fix.
463 - Fix log message in selector that could raise IndexError. Thanks Kumar
464   McMillan for the bug report and patch.
465 - Fix bug in handling doctest extension arguments specified in environment and
466   on command line. Thanks Ian Bicking for the bug report.
467 - Fix bug in running fixtures (setup/teardown) that are not functions, and
468   report a better error message when a fixture is not callable. Thanks Ian
469   Bicking for the bug report.
470
471 0.9.0
472
473 - More unit tests and better test coverage. Numerous bugfixes deriving from
474   same.
475 - Make --exe option do what it says, and turn it on by default on
476   Windows. Add --noexe option so windows users can turn if off.Thanks
477   richard at artsalliancemedia dot com for the bug reports.
478 - Handle a working directory that happens to be in the middle of a package
479   more gracefully. Thanks Max Ischenko for the bug report and test case.
480 - Fix bugs in test name comparison when a test module is specified whose name
481   overlaps that of a non-test module. Thanks Max Ischenko for the bug report
482   and test case.
483 - Fix warning spam when a non-existent test file is requested on the command
484   line. Thanks Max Ischenko for the bug report.
485
486 0.9.0b2
487
488 - Allow --debug to set any logger to DEBUG. Thanks to casbon at gmail dot com
489   for the patch.
490 - Fix doctest help, which was missing notes about the environment variables
491   that it accepts. Thanks to Kumar McMillan for the patch.
492 - Restore sys.stdout after run() in nose.core. Thanks to Titus Brown for the
493   bug report.
494 - Correct handling of trailing comma in attrib plugin args. Thanks Titus Brown
495   for the patch.
496
497 0.9.0b1
498
499 - Fix bug in handling of OR conditions in attrib plugin. Thanks to Titus
500   Brown for the bug report.
501 - Fix bug in nose.importer that would cause an attribute error when a local
502   module shadowed a builtin, or other object in sys.modules, without a
503   __file__ attribute. Thanks to casbon at gmail dot com for the bug report.
504 - Fix bug in nose.tools decorators that would cause decorated tests to appear
505   with incorrect names in result output.
506
507 0.9.0a2
508
509 - In TestLoader, use inspect's isfunction() and ismethod() to filter functions
510   and methods, instead of callable(). Thanks to Kumar McMillan for reporting
511   the bug.
512 - Fix doctest plugin: return an empty iterable when no tests are found in a
513   directory instead of None. Thanks to Kumar McMillan for the bug report and
514   patch.
515 - Ignore executable python modules, unless run with --exe file. This is a
516   partial defense against nose causing trouble by loading python modules that
517   are not import-safe. The full defense: don't write modules that aren't
518   import safe!
519 - Catch and warn about errors on plugin load instead of dying.
520 - Renamed builtin profile module from nose.plugins.profile to
521   nose.plugins.prof to avoid shadowing stdlib profile.py module.
522
523 0.9.0a1
524
525 - Add support for plugins, with hooks for selecting, loading and reporting on
526   tests. Doctest and coverage are now plugins.
527 - Add builtin plugins for profiling with hotshot, selecting tests by
528   attribute (contributed by Mika Eloranta), and warning of missed tests
529   specified on command line.
530 - Change command line test selection syntax to match unittest. Thanks to Titus
531   Brown for the suggestion.
532 - Option to drop into pdb on error or failure.
533 - Option to stop running on first error or failure. Thanks to Kevin Dangoor
534   for the suggestion.
535 - Support for doctests in files other than python modules (python 2.4 only)
536 - Reimplement base test selection as single self-contained class.
537 - Reimplement test loading as unittest-compatible TestLoader class.
538 - Remove all monkeypatching.
539 - Reimplement output capture and assert introspection support in
540   unittest-compatible Result class.
541 - Better support for multiline constructions in assert introspection.
542 - More context output with assert introspections.
543 - Refactor setuptools test command support to use proxied result, which
544   enables output capture and assert introspection support without
545   monkeypatching. Thanks to Philip J. Eby for the suggestion and skeleton
546   implementation.
547 - Add support for generators in test classes. Thanks to Jay Parlar for the
548   suggestion and patch.
549 - Add nose.tools package with some helpful test-composition functions and
550   decorators, including @raises, contributed by Scot Doyle.
551 - Reimplement nose.main (TestProgram) to have unittest-compatible signature.
552 - All-new import path handling. You can even turn it off! (If you don't,
553   nose will ensure that all directories from which it imports anything are on
554   sys.path before the import.)
555 - Logging package used for verbose logging.
556 - Support for skipped and deprecated tests.
557 - Configuration is no longer global.
558
559 0.8.7
560
561 - Add support for py.test-style test generators. Thanks to Jay Parlar for
562   the suggestion.
563 - Fix bug in doctest discovery. Thanks to Richard Cooper for the bug report.
564 - Fix bug in output capture being appended to later exceptions. Thanks to
565   Titus Brown for the patch that uncovered the bug.
566 - Fix bug(?) in Exception patch that caused masked hasattr/__getattr__ loops
567   to either become actual infinite loops, or at least take so long to finally
568   error out that they might as well be infinite.
569 - Add -m option to restrict test running to only tests in a particular package
570   or module. Like the -f option, -m does not restrict test *loading*, only
571   test *execution*.
572 - When loading and running a test module, ensure that the module's path is in
573   sys.path for the duration of the run, not just while importing the module.
574 - Add id() method to all callable test classes, for greater unittest
575   compatibility.
576
577 0.8.6
578
579 - Fix bug with coverage output when sys.modules contains entries without
580   __file__ attributes
581 - Added -p (--cover-packages) switch that may be used to restrict coverage
582   report to modules in the indicated package(s)
583
584 0.8.5
585
586 - Output capture and verbose assertion errors now work when run like
587   'python setup.py test', as advertised.
588 - Code coverage improvements: now coverage will be output for all modules
589   imported by any means that were not in sys.modules at the start of the test
590   run. By default, test modules will be excluded from the coverage report, but
591   you can include them with the -t (--cover-tests) option.
592
593 0.8.4
594
595 - Fix bugs in handling of setup/teardown fixtures that could cause TypeError
596   exceptions in fixtures to be silently ignored, or multiple fixtures of the
597   same type to run. Thanks to Titus Brown for the bug report.
598
599 0.8.3
600
601 - Add -V (--version) switch to nosetests
602 - Fix bug where sys.path would not be set up correctly when running some
603   tests, producing spurious import errors (Thanks to Titus Brown and Mike
604   Thomson for the bug reports)
605 - For test classses not derived from unittest.TestCase, output (module.Class)
606   "doc string" as test description, when method doc string is available
607   (Thanks to David Keeney for the suggestion, even if this isn't quite what he
608   meant)
609
610 0.8.2
611
612 - Revise import to bypass sys.path and manipulate sys.modules more
613   intelligently, ensuring that the test module we think we are loading is the
614   module we actually load, and that modules loaded by other imports are not
615   reloaded without cause
616 - Allow test directories inside of packages. Formerly directories matching
617   testMatch but lacking an __init__.py would cause an ImportError when located
618   inside of packages
619 - Fix bugs in different handling of -f switch in combination with -w and -o
620
621 0.8.1
622
623 - Fix bug in main() that resulted in incorrect exit status for nosetests
624   script when tests fail
625 - Add missing test files to MANIFEST.in
626 - Miscellaneous pylint cleanups
627
628 0.8
629
630 - Add doctest support
631 - Add optional code coverage support, using Ned Batchelder's coverage.py;
632   activate with --coverage switch or NOSE_COVERAGE environment variable
633 - More informative error message on import error
634 - Fix bug where module setup could be called twice and teardown skipped
635   for certain setup method names.
636 - main() returns success value, does not exit. run_exit() added to support
637   old behavior; nosetests script now calls nose.run_exit()
638
639 0.7.5
640
641 - Fix bus error on exit
642 - Discover tests inside of non-TestCase classes that match testMatch
643 - Reorganize selftest: now selftest tests the output of a full nose run
644 - Add test_with_setup.py contributed by Kumar McMillan
645
646 0.7.2
647
648 - Refactor and correct bugs in discovery and test loading
649 - Reorganize and expand documentation
650 - Add -f (run this test file only) switch
651
652 0.7.1
653
654 - Bugfix release: test files in root of working directory were not being
655   stripped of file extension before import.
656
657 0.7
658
659 - Change license to LGPL
660 - Major rework of output capture and assert introspection
661 - Improve test discovery: now finds tests in packages
662 - Replace -n switch ('no cwd') with -w switch ('look here')
663
664 0.6
665
666 - New nosetests script
667 - Allow specification of names on command line that are loadable but not
668   directly loadable as modules (eg nosetests -o path/to/tests.py)
669 - Add optional py.test-like assert introspection. Thanks to Kevin Dangoor
670   for the suggestion.
671 - Improvements to selftest
672
673 0.5.1
674
675 - Increased compatibility with python 2.3 (and maybe earlier)
676 - Increased compatibility with tests written for py.test: now calls
677   module.setup_module(module) if module.setup_module() fails
678