CHANGELOG 40 KB

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