Source

nose-pycon / CHANGELOG

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
0.10.3

- Fixed bug in nosetests setup command that caused an exception to be raised
  if run with options. Thanks to Philip Jenvey for the bug report (#191).
- Raised score of coverage plugin to 200, so that it will execute before
  default-score plugins, and so be able to catch more import-time code. Thanks
  to Ned Batchelder for the bug report and patch (#190).
  
0.10.2

- nose now runs under jython (jython svn trunk only at this time). Thanks to
  Philip Jenvey, Pam Zerbinos and the other pycon sprinters (#160).
- Fixed bugs in loader, default plugin manager, and other modules that
  caused plugin exceptions to be swallowed (#152, #155). Thanks to John J
  Lee for the bug report and patch.
- Added selftest.py script, used to test a non-installed distribution of
  nose (#49). Thanks to Antoine Pitrou and John J Lee for the bug report and
  patches.
- Fixed bug in nose.importer that caused errors with namespace
  packages. Thanks to Philip Jenvey for the bug report and patch (#164).
- Fixed bug in nose.tools.with_setup that prevented use of multiple
  @with_setup decorators. Thanks to tlesher for the bug report (#151).
- Fixed bugs in handling of context fixtures for tests imported into a
  package. Thanks to Gary Bernhardt for the bug report (#145).
- Fixed bugs in handling of config files and config file options for plugins
  excluded by a RestrictedPluginManager. Thanks to John J Lee and Philip
  Jenvey for the bug reports and patches (#158, #166).
- Updated ErrorClass exception reporting to be shorter and more clear. Thanks
  to John J Lee for the patch (#142).
- Allowed plugins to load tests from modules starting with '_'. Thanks to John
  J Lee for the patch (#82).
- Updated documentation about building as rpm (#127).
- Updated config to make including executable files the default on
  IronPython as well as on Windows. Thanks to sanxiyn for the bug
  report and patch (#183).  
- Fixed a python 2.3 incompatibility in errorclass_failure.rst
  (#173). Thanks to Philip Jenvey for the bug report and patch.
- Classes with metaclasses can now be collected as tests (#153).
- Made sure the document tree in the selector plugin test is accurate
  and tested (#144). Thanks to John J Lee for the bug report and
  patch.
- Fixed stack level used when dropping into pdb in a doctest
  (#154). Thanks to John J Lee for the bug report and patch.
- Fixed bug in ErrorClassPlugin that made some missing keyword
  argument errors obscure (#159). Thanks to Philip Jenvey for the bug
  report and patch.

0.10.1

- Fixed bug in capture plugin that caused it to record captured output
  on the test in the wrong attribute (#113).
- Fixed bug in result proxy that caused tests to fail if they accessed
  certain result attibutes directly (#114). Thanks to Neilen Marais
  for the bug report.
- Fixed bug in capture plugin that caused other error formatters
  changes to be lost if no output was captured (#124). Thanks to
  someone at ilorentz.org for the bug report.
- Fixed several bugs in the nosetests setup command that made some
  options unusable and the command itself unusable when no options
  were set (#125, #126, #128). Thanks to Alain Poirier for the bug
  reports.
- Fixed bug in handling of string errors (#130). Thanks to schl... at
  uni-oldenburg.de for the bug report.
- Fixed bug in coverage plugin option handling that prevented
  --cover-package=mod1,mod2 from working (#117). Thanks to Allen
  Bierbaum for the patch.
- Fixed bug in profiler plugin that prevented output from being
  produced when output capture was enabled on python 2.5
  (#129). Thanks to James Casbon for the patch.
- Fixed bug in adapting 0.9 plugins to 0.10 (#119 part one). Thanks to
  John J Lee for the bug report and tests.
- Fixed bug in handling of argv in config and plugin test utilities
  (#119 part two). Thanks to John J Lee for the bug report and patch.
- Fixed bug where Failure cases due to invalid test name
  specifications were passed to plugins makeTest (#120). Thanks to
  John J Lee for the bug report and patch.
- Fixed bugs in doc css that mangled display in small windows. Thanks
  to Ben Hoyt for the bug report and Michal Kwiatkowski for the fix.
- Made it possible to pass a list or comma-separated string as
  defaultTest to main(). Thanks to Allen Bierbaum for the suggestion
  and patch.
- Fixed a bug in nose.selector and nose.util.getpackage that caused
  directories with names that are not legal python identifiers to be
  collected as packages (#143). Thanks to John J Lee for the bug
  report.

0.10.0

- Fixed bug that broke plugins with names containing underscores or
  hyphens. Thanks to John J Lee for the bug report and patch (Issue
  #81).
- Fixed typo in nose.__all__. Thanks to John J Lee for the bug report.
- Fixed handling of test descriptions that are multiline
  docstrings. Thanks to James Casbon for the patch (Issue #50).
- Improved documentation of doctest plugin to make it clear that
  entities may have doctests, or themselves be tests, but not
  both. Thanks to John J Lee for the bug report and patch (Issue #84).
- Made __file__ available in non-python-module doctests.
- Fixed bug that made it impossible for plugins to exclude package
  directories from test discovery (Issue #89). Thanks to John J Lee
  for the bug report and patch.
- Fixed bug that swallowed TypeError and AttributeError exceptions
  raised in some plugin calls (Issue #95). Thanks to John J Lee for
  the bug report.
- Fixed inconsistencies in many interfaces and docs. Thanks to John J
  Lee for many bug reports.
- Fixed bugs in rpm generation (Issue #96). Thanks to Mike Verdone for
  the bug report and http://bugs.python.org/issue644744 for the fix.
- Fixed inconsisent use of os.environ in plugin testing
  utilities. Thanks to John J Lee for the bug report and patch (Issue
  #97).
- Fixed bug in test_address that prevented use of nose.case.Test in
  doctests (Issue #100). Thanks to John J Lee for the bug report.
- Fixed bug in error class plugin that caused string exceptions to be
  masked (#Issue 101). Thanks to depaula for the bug report.
- Fixed bugs in tests and the profiler plugin when running under
  Windows (Issue #103). Thanks to Sidnei Da Silva for the bug report.
- Fixed bugs in plugin calls that caused exception swallowing (Issue
  #107). Thanks to John L Lee for the bug report and patch.
- Added more plugin example doctests. Thanks to Kumar McMillan and
  John L Lee for patches and lots of help.
- Changed default location of id file for TestId plugin from ~/.noseids to
  .noseids in the configured working directory.

0.10.0b1

- Added support for a description attribute on tests in function and
  method test cases.  Most useful for generators: set the description
  attribute on the yielded function.
- Fixed incorrect signature of addSuccess() method in
  IPluginInterface. Thanks to nosexunit for the bug report. (Issue
  #68).
- Fixed isclass() function in nose.util so that it will not raise an
  exception when examining instances that have no accessible __bases__
  attribute. (Issue #65).
- Fixed passing of tests to result; the test itself and not the
  wrapper was being passed, resulting in test description plugin hooks
  not being called. (Issue #71).
- Fixed bugs in FailureDetail and Capture plugins, and plugin manager
  and proxy uses of chainable plugin calls. Thanks to Ian Bicking for
  the bug report (Issue #72).
- Improved documentation.

0.10.0a2

- Changed entry point name to nose.plugins.0.10 -- dashes and other
  non-word characters besides . are not allowed in entry point names.
  (Issue #67)
- Fixed loading of plugins from that entry point.
- Fixed backwards-compatibility issue in nose.util (is_generator was
  renamed isgenerator). (Issue #64)
- Fixed bug in --logging-config option. Thanks to anton_kr... at yahoo
  com for the bug report. (Issue #62)
- Fixed bug in handling of --where argument: first --where was not
  passed to loader as workingDir. Thanks to nosexunit for the bug
  report. (Issue #63).

0.10.0a1

- Rewrote test loader to be more drop-in compatible with
  unittest.TestLoader and to support a more user-friendly command
  line.
- Rewrote test runner and result classes to reduce duplication of effort.
- Revised configuration system to be less convoluted.
- Added nose.case.TestCase as universal wrapper for all
  testcases. Plugins always see instances of this class.
- Added a management layer to the plugin system, allowing for easy use
  of different plugin loading schemes. The default manager loads
  builtin plugins, 0.10 plugins under the setuptools entrypoint
  nose.plugins.0-10 and provides limited support for legacy plugins
  loaded under the entrypoint nose.plugins.
- Added plugin hooks in all phases of discovery, running and description.
- Converted several formely core features to plugins: output capture,
  assert introspection, pdb, and skipped and deprecated test support.
- Added id plugin that allows for easier specification of tests on the
  command line.
- Added ErrorClassPlugin base class to allow for easier authoring of
  plugins that handle errors, like the builtin skipped and deprecated
  test plugins.
- Added support for loading doctests from non-module files for all
  supported python versions.
- Added score property to plugins to allow plugins to execute in a
  defined order (higher score execute first).
- Expanded nose's own test suite to include a variety of functional tests.
- Fixed many bugs.

0.9.3

- Added support for user configuration files. Thanks to Antoine Pitrou for the
  patch.
- Fixed bug that caused profiler plugin to leak 0-byte temp files. Thanks to
  Antoine Pitrou for the patch.
- Made usage of temp files in profiler plugin more sensible. Thanks to Michael
  Sclenker for the bug report.
- Fixed bug that stopped loading of twisted TestCase tests. Thanks to Kumar
  McMillan for the bug report.
- Corrected man page location. Thanks to luke macken for the bug report and
  patch.
- Added with_setup to nose.tools.__all__. Thanks to Allen Bierbaum for the bug
  report.
- Altered plugin loading so that builtin plugins can be loaded without
  setuptools. Thanks to Allen Bierbaum for the suggestion.
- Fixed a bug in the doctests plugin that caused an error when multiple
  exclude arguments were specified. Thanks to mbeachy for the bug report and
  patch.
  
0.9.2

- Added nosetests setuptools command. Now you can run python setup.py
  nosetests and have access to all nose features and plugins. Thanks to James
  Casbon for the patch.
- Added make_decorator function to nose.tools. Used to construct decorator
  functions that are well-behaved and preserve as much of the original
  function's metadata as possible. Thanks to Antoine Pitrou for the patch.
- Added nose.twistedtools, contributed by Antoine Pitrou. This module adds
  @deferred decorator that makes it simple to write deferred tests, with or
  without timeouts.
- Added monkeypatch to doctests that keeps doctest from stepping on coverage 
  when the two plugins are used together. Thanks to David Avraamides for the 
  bug report.
- Added isolation plugin. Use this plugin to automatically restore sys.modules
  after each test module or package. Thanks to Michal Kwiatkowski for the 
  feature request.
- Fixed bug where -vvvv turned off verbose logging instead of making it even 
  more verbose. Thanks to Ian Bicking for the bug report.
- Fixed bug where assert inspection would fail when the trailing """ of a 
  docstring was one of the inspected lines. Thanks to cito at online dot de 
  for the bug report.
- Updated attrib plugin to allow selection of test methods by attributes of
  the test case class. Thanks to Jason Hildebrand for the patch.
- Improved compatibility with python 2.2. Thanks to Chad Whitacre for the 
  patch.
- Fixed bug in handling of options from setup.cfg. Thanks to Kumar McMillan for
  the patch.
- Fixed bug in generator methods, where a generator method using an inline
  funciton would result in an AttributeError. Thanks to Antoine Pitrou for the
  bug report.
- Updated coverage plugin to ignore lines tagged with #pragma: no cover, 
  matching the behavior of coverage.py on the command line. Thanks to Bill 
  Zingler for the bug report.
- Added a man page for nosetests. Thanks to Gustavo Noronha Silva for the 
  request and providing an example.

0.9.1

- New function nose.runmodule() finds and runs tests only in a 
  single module, which defaults to __main__ (like unittest.main() or 
  doctest.runmodule()). Thanks Greg Wilson for the suggestion.
- Multiple -w (--where) arguments can now be used in one command line,
  to find and run tests in multiple locations. Thanks Titus Brown for
  the suggestion.
- Multiple --include and --exclude arguments are now accepted in one command 
  line. Thanks Michal Kwiatkowski for the feature request.
- Coverage will now include modules not imported by any test when
  using the new --cover-inclusive switch. Thanks James Casbon for the
  patch.
- module:TestClass test selections now properly select all tests in the test 
  class.
- startTest and stopTest are now called in plugins at the beginning and end of
  test suites, including test modules, as well as individual tests. Thanks 
  Michal Kwiatkowski for the suggestion.
- Fix bug in test selection when run as ``python setup.py test``: 'test' was 
  passing through and being used as the test name selection. Thanks Kumar 
  McMillan for the bug report.
- Fix bug in handling of -x/--stop option where the test run would stop on
  skipped or deprecated tests. Thanks Kumar McMillan for the bug report.
- Fix bug in loading tests from projects with layouts that place modules in
  /lib or /src dirs and tests in a parallel /tests dir.
- Fix bug in python version detection. Thanks Kevin Dangoor for the bug report 
  and fix.
- Fix log message in selector that could raise IndexError. Thanks Kumar 
  McMillan for the bug report and patch.
- Fix bug in handling doctest extension arguments specified in environment and
  on command line. Thanks Ian Bicking for the bug report.
- Fix bug in running fixtures (setup/teardown) that are not functions, and
  report a better error message when a fixture is not callable. Thanks Ian
  Bicking for the bug report.
  
0.9.0

- More unit tests and better test coverage. Numerous bugfixes deriving from
  same.
- Make --exe option do what it says, and turn it on by default on
  Windows. Add --noexe option so windows users can turn if off.Thanks
  richard at artsalliancemedia dot com for the bug reports.  
- Handle a working directory that happens to be in the middle of a package
  more gracefully. Thanks Max Ischenko for the bug report and test case.
- Fix bugs in test name comparison when a test module is specified whose name
  overlaps that of a non-test module. Thanks Max Ischenko for the bug report
  and test case.
- Fix warning spam when a non-existent test file is requested on the command
  line. Thanks Max Ischenko for the bug report.

0.9.0b2

- Allow --debug to set any logger to DEBUG. Thanks to casbon at gmail dot com for
  the patch. 
- Fix doctest help, which was missing notes about the environment variables
  that it accepts. Thanks to Kumar McMillan for the patch.
- Restore sys.stdout after run() in nose.core. Thanks to Titus Brown for the
  bug report. 
- Correct handling of trailing comma in attrib plugin args. Thanks Titus Brown
  for the patch.

0.9.0b1

- Fix bug in handling of OR conditions in attrib plugin. Thanks to Titus
  Brown for the bug report.
- Fix bug in nose.importer that would cause an attribute error when a local
  module shadowed a builtin, or other object in sys.modules, without a
  __file__ attribute. Thanks to casbon at gmail dot com for the bug report.
- Fix bug in nose.tools decorators that would cause decorated tests to appear
  with incorrect names in result output.   

0.9.0a2

- In TestLoader, use inspect's isfunction() and ismethod() to filter functions
  and methods, instead of callable(). Thanks to Kumar McMillan for reporting
  the bug.
- Fix doctest plugin: return an empty iterable when no tests are found in a
  directory instead of None. Thanks to Kumar McMillan for the bug report and
  patch.
- Ignore executable python modules, unless run with --exe file. This is a
  partial defense against nose causing trouble by loading python modules that
  are not import-safe. The full defense: don't write modules that aren't
  import safe!
- Catch and warn about errors on plugin load instead of dying.
- Renamed builtin profile module from nose.plugins.profile to
  nose.plugins.prof to avoid shadowing stdlib profile.py module.

0.9.0a1

- Add support for plugins, with hooks for selecting, loading and reporting on
  tests. Doctest and coverage are now plugins.
- Add builtin plugins for profiling with hotshot, selecting tests by
  attribute (contributed by Mika Eloranta), and warning of missed tests
  specified on command line. 
- Change command line test selection syntax to match unittest. Thanks to Titus
  Brown for the suggestion.
- Option to drop into pdb on error or failure.
- Option to stop running on first error or failure. Thanks to Kevin Dangoor
  for the suggestion.
- Support for doctests in files other than python modules (python 2.4 only)
- Reimplement base test selection as single self-contained class.
- Reimplement test loading as unittest-compatible TestLoader class.
- Remove all monkeypatching.
- Reimplement output capture and assert introspection support in
  unittest-compatible Result class.
- Better support for multiline constructions in assert introspection.
- More context output with assert introspections.
- Refactor setuptools test command support to use proxied result, which
  enables output capture and assert introspection support without
  monkeypatching. Thanks to Philip J. Eby for the suggestion and skeleton
  implementation.
- Add support for generators in test classes. Thanks to Jay Parlar for the
  suggestion and patch.
- Add nose.tools package with some helpful test-composition functions and
  decorators, including @raises, contributed by Scot Doyle.
- Reimplement nose.main (TestProgram) to have unittest-compatible signature.
- All-new import path handling. You can even turn it off! (If you don't,
  nose will ensure that all directories from which it imports anything are on
  sys.path before the import.)
- Logging package used for verbose logging.
- Support for skipped and deprecated tests.
- Configuration is no longer global.

0.8.7

- Add support for py.test-style test generators. Thanks to Jay Parlar for
  the suggestion.
- Fix bug in doctest discovery. Thanks to Richard Cooper for the bug report.
- Fix bug in output capture being appended to later exceptions. Thanks to
  Titus Brown for the patch that uncovered the bug.
- Fix bug(?) in Exception patch that caused masked hasattr/__getattr__ loops
  to either become actual infinite loops, or at least take so long to finally
  error out that they might as well be infinite.
- Add -m option to restrict test running to only tests in a particular package
  or module. Like the -f option, -m does not restrict test *loading*, only
  test *execution*.
- When loading and running a test module, ensure that the module's path is in
  sys.path for the duration of the run, not just while importing the module.
- Add id() method to all callable test classes, for greater unittest
  compatibility.
  
0.8.6

- Fix bug with coverage output when sys.modules contains entries without
  __file__ attributes
- Added -p (--cover-packages) switch that may be used to restrict coverage
  report to modules in the indicated package(s)

0.8.5

- Output capture and verbose assertion errors now work when run like
  'python setup.py test', as advertised.
- Code coverage improvements: now coverage will be output for all modules
  imported by any means that were not in sys.modules at the start of the test
  run. By default, test modules will be excluded from the coverage report, but
  you can include them with the -t (--cover-tests) option.

0.8.4

- Fix bugs in handling of setup/teardown fixtures that could cause TypeError
  exceptions in fixtures to be silently ignored, or multiple fixtures of the
  same type to run. Thanks to Titus Brown for the bug report.

0.8.3

- Add -V (--version) switch to nosetests
- Fix bug where sys.path would not be set up correctly when running some
  tests, producing spurious import errors (Thanks to Titus Brown and Mike
  Thomson for the bug reports)
- For test classses not derived from unittest.TestCase, output (module.Class)
  "doc string" as test description, when method doc string is available
  (Thanks to David Keeney for the suggestion, even if this isn't quite what he
  meant)

0.8.2

- Revise import to bypass sys.path and manipulate sys.modules more
  intelligently, ensuring that the test module we think we are loading is the
  module we actually load, and that modules loaded by other imports are not
  reloaded without cause
- Allow test directories inside of packages. Formerly directories matching
  testMatch but lacking an __init__.py would cause an ImportError when located
  inside of packages
- Fix bugs in different handling of -f switch in combination with -w and -o

0.8.1

- Fix bug in main() that resulted in incorrect exit status for nosetests
  script when tests fail
- Add missing test files to MANIFEST.in
- Miscellaneous pylint cleanups

0.8

- Add doctest support
- Add optional code coverage support, using Ned Batchelder's coverage.py;
  activate with --coverage switch or NOSE_COVERAGE environment variable
- More informative error message on import error 
- Fix bug where module setup could be called twice and teardown skipped
  for certain setup method names.
- main() returns success value, does not exit. run_exit() added to support
  old behavior; nosetests script now calls nose.run_exit()
 
0.7.5

- Fix bus error on exit
- Discover tests inside of non-TestCase classes that match testMatch
- Reorganize selftest: now selftest tests the output of a full nose run
- Add test_with_setup.py contributed by Kumar McMillan
 
0.7.2

- Refactor and correct bugs in discovery and test loading
- Reorganize and expand documentation
- Add -f (run this test file only) switch

0.7.1

- Bugfix release: test files in root of working directory were not being
  stripped of file extension before import.
  
0.7

- Change license to LGPL
- Major rework of output capture and assert introspection
- Improve test discovery: now finds tests in packages
- Replace -n switch ('no cwd') with -w switch ('look here')

0.6

- New nosetests script
- Allow specification of names on command line that are loadable but not
  directly loadable as modules (eg nosetests -o path/to/tests.py)
- Add optional py.test-like assert introspection. Thanks to Kevin Dangoor
  for the suggestion.
- Improvements to selftest
 
0.5.1

- Increased compatibility with python 2.3 (and maybe earlier)
- Increased compatibility with tests written for py.test: now calls
  module.setup_module(module) if module.setup_module() fails
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.