csingley / ofxtools

Python OFX Library
Other
301 stars 68 forks source link

Initial Update #51

Closed pyup-bot closed 5 years ago

pyup-bot commented 5 years ago

This PR sets up pyup.io on this repo and updates all dependencies at once, in a single branch.

Subsequent pull requests will update one dependency at a time, each in their own branch. If you want to start with that right away, simply close this PR.

Update mock from 2.0.0 to 2.0.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links - PyPI: https://pypi.org/project/mock - Repo: https://github.com/testing-cabal/mock

Update nose from 1.3.7 to 1.3.7.

Changelog ### 1.3.7 ``` - Fix loading packages from capitalised package on Windows Patch by Thomas Kluyver ``` ### 1.3.6 ``` - Re-release of 1.3.5 with wheels fixed. ``` ### 1.3.5 ``` package notation, using the coverage plugin with multiprocessing, and several others. See the CHANGELOG for more details. Also note that nose 1.x is in maintenance mode. We will not be looking to add any features, and you should seriously consider looking at nose2 as the way forward. If you're interested in the future of nose, please take a look at the nose2 project on github (https://github.com/nose-devs/nose2) or pypi (http://pypi.python.org/pypi/nose2/0.5.0). [nosetests] with-doctest=1 doctest-extension=.rst doctest-fixtures=_fixtures py3where=build/tests [bdist_rpm] doc_files = man/man1/nosetests.1 README.txt ;; Uncomment if your platform automatically gzips man pages ;; See README.BDIST_RPM ;; install_script = install-rpm.sh ``` ### 1.3.4 ``` - Recognize doctest options defined in other plugins Patch by Daniel Lepage - Another fix for Python 3.4: Call super in LazySuite to access _removed_tests variable Patch by Robert Kuska - Fix for try_run when using bound methods Patch by Christian Lyder Jacobsen ``` ### 1.3.3 ``` - Fixed a minor issue with the reported version number. ``` ### 1.3.2 ``` - Fixed an issue where build_ext was not working under setup.py nosetest Patch by Michael Crusoe - Fixed 786: generator method fails with callable instance Patch by Antoine Dechaume - Fixed a traceback when using string exceptions - Fixed 792: "Not a directory" error when using python setup.py nosetests - Fixed 779: xunit report file is written in --where directory - Fixed 782: Test failures with Python >= 3.3 Patch by Dmitry Shachnev - Fixed 780: Fix a regression with Python 3 - Fixed 783: try_run is broken with Python 3.4 ``` ### 1.3.1 ``` - The log capture plugin now correctly applies filters that were added using `addFilter`. Patch by Malthe Borch. - Corrected a reference to the multiprocessing plugin in the documentation. Patch by Nick Loadholtes. - Fixed 447: doctests fail when getpackage() returns None Patch by Matthew Brett. - Fixed 749: xunit exceeds recursion limit Patch by André Caron. - Fixed a number of unicode-related issues. Patch by John Szakmeister. - Added the ability to ignore config files via an environment variable Patch by Lukasz Balcerzak - Fixed 720: nose with detailed errors raises encoding error Patch by John Szakmeister. Thanks to Guillaume Ayoub for the test case. - Fixed 692: UnicodeDecodeError in xunit when capturing stdout and stderr Patch by John Szakmeister. - Fixed 693: Python 2.4 incompatibilities Patch by John Szakmeister. - Don't save zero-byte xunit test reports Patch by Dan Savilonis. - Fix Importer.importFromPath to be able to import modules whose names start with __init__ Patch by Paul Bonser. - Add a fake isatty() method to Tee Patch by Jimmy Wennlund. - Fix 700: Tee is missing the writelines() method Patch by John Szakmeister. - Fix 649: UnicodeDecodeError when an exception contains encoded strings Patch by John Szakmeister. - Fix 687: verbosity is not a flag Patch by John Szakmeister. - Fixed a suppressed deprecation warning Patch by Arnon Yaari. - Fixed some broken links in the documentation Patch by Arnon Yaari. - Add missing format parameter in error message Patch by Etienne Millon. - Switched docs to point at the GitHub site for the issue tracker Patch by Daniel Beck. - Fix 447: doctests fail when getpackage() returns None Patch by Matthew Brett. - Fix 366: make --pdb report on errors and failures. Use --pdb-error to get the old behavior. Patch by Arnon Yaari. - Fix 501: Imported test generators are misrecognized as simple test functions Patch by John Szakmeister. - Added a test for issue 501 Patch by Michael Killough. - Use SkipTest from unittest2, if available, for better integration with testtools Patch by Ian Wienand. - Fix 759: Test failures with Python 3.4 Patch by Barry Warsaw. - Add a note about executable files in the usage, and how to workaround it Patch by Michael Dunn. - Fix 743: fix an incorrect regex in writing_tests.rst Patch by Anne Moroney. - Fix 690: Don't traceback when coverage reports fail. Patch by John Szakmeister. - Display the report summary and stack traces even if Ctrl-C was pressed during the test run. Patch by Kevin Qiu. - Fix 771: attr plugin is broken when parent and child share same method name with different attributes Patch by John Szakmeister. Test case provided by Thomas Grainger. - Fix 728: attrib plugin rejects any staticmethod Patch by John Szakmesiter. Test case provided by Thomas Kluyver. - Fix the plugin testing example. Patch by Charlie Dominio. - Instruct coverage instance to cover requested packages only. ``` ### 1.3.0 ``` - Fix 556: fix selecting specific tests in the setuptools command. Patch by Andrey Golovizin. - Fixed timed decorator to return the result of the wrapped function. Patch by Praful Mathur. - Fixed 513: exception in test generator leads to a TypeError. Patch by Dmitry Shachnev. - Fixed 535: nose.importer causes bizarre import errors if sys.path includes symlinks. Patch by Antoine Pitrou. - Added support for Python 3.3. Patch by John Szakmeister and Bradley Froehle. - Added the ability to skip generating .pyc files with --no-byte-complie. Patch by John Szakmeister. - Suppress tracebacks caused by configuration errors (401). Patch by Andrea Corbellini. - Fixed doctest failures under Python 3 (519). Patch by John Szakmeister. - Fixed test_address's checking for builtins to work with Python 2 and 3. Patch by Joe Mathes and John Szakmeister. - Fixed a bug where nose.tools was not being installed on systems without setuptools. (554) Patch by Bradley Froehle. - Fixed a bug in xunit that was causing it to die ungracefully under Python 3. (134) Patch by John Szakmeister. - Fixed 561: logcapture shouldn't buffer records, breaks %r point-in-time formatting. Patch by Santeri Paavolainen. - Taught xunit to capture stdout and stderr in the xunit report. Patch by John Szakmeister. - Repopulate nose.tools.__all__ so that the autodocs generate correctly. Patch by Taavi Burns. - Fixed a bug where nose was failing to parse the NOSE_COVER_PACKAGE environment variable correctly. (109) Patch by Churkin Oleg. - Taught nose to lookup it's usage text according to PEP-302. Patch by Bradely Froehle. - Fixed an ugly traceback when a test class was imported from another module, but was missing a method. (595) Patch by Michael Williamson. - Fix formatFailure expection if missing tb in exc_info. (603) Patch by Sascha Peilicke. - Taught the test suite to skip coverage tests if the coverage module is not available. (597) Patch by Dmitry Shachnev. - Fix 135: ResultProxy._prepareErr mangles error output in some cases. Patch by Arnon Yaari. - Updated plugin documentation to fix numerous typos and incorrect names. Patch by Arnon Yaari. - Added the ability to run nose as a module. Patch by Stefano Rivera. - Fix installing Nose under Windows with Python 3.3. Patch by John Szakmeister. - Added documentation for --processes=0 and the default value of --process-timeout. Patch by Takafumi Arakaki. - Fixed broken references to non-existent documentation. Patch by Dmitry Shachnev. - Fix --cover-min-percentage with --cover-branches. (626) Patch by B. W. Baugh. - Fix --cover-min-percentage with single packages. Patch by John Szakmeister. - Fixed reference to PEP 8 to use Sphinx construct for better linking. Patch by Mahhtijs van der Vleuten. - Fixed a reference to --cover-packages to use the correct option name. Patch by Wesley Baugh. - Updated Nose to avoid using the deprecated compiler module when possible. Patch by Kim Scheilbel. - Updated docstrings of formatFailure() and formatError(). Patch by Daniel Abel. - Several man page fixes for better formatting. Patches by Dmitry Shachnev. - Fixed a bug causing Nose to crash in directories that end in '.py'. (612) Patch by Arnon Yaari. - Fixed a traceback when a test raises SystemExit and has captured output. (526) Patch by Arnon Yaari. - Fixed ImportError running nosetests on namespace package in a subdirectory on Windows. (19) Patch by Arnon Yaari. ``` ### 1.2.1 ``` - Correct nose.__version__ (549). Thanks to Chris Withers for the bug report. ``` ### 1.2.0 ``` - Fixed issue where plugins included with `addplugins` keyword could be overridden by built-in plugins (or third-party plugins registered with setuptools) of the same name (466). Patch by Brendan McCollam - Adds :option:`--cover-xml` and :option:`--cover-xml-file` (311). Patch by Timothée Peignier. - Adds support for :option:`--cover-branches` (related to 370). Patch by Timothée Peignier. - Fixed Unicode issue on Python 3.1 with coverage (442) - fixed class level fixture handling in multiprocessing plugin - Clue in the ``unittest`` module so it no longer prints traceback frames for our clones of their simple assertion helpers (453). Patch by Erik Rose. - Stop using the ``assert`` statement in ``ok_`` and ``eq_`` so they work under ``python -O`` (504). Patch by Erik Rose. - Add loglevel option to logcapture plugin (493). Patch by Arach Tchoupani. - Add doctest options flag (7 from google code tracker). Patch by Michael Forbes. - Add support for using 2to3 with the nosetests setuptools command. Patch by Andrey Golovizin. - Add --cover-min-percentage flag to force test runs without sufficient coverage to fail (540). Patch by Domen Kožar. - Add travis-ci configuraion (545). Patch by Domen Kožar. - Call reactor.stop from twisted thread (301). Patch by Adi Roiban. ``` ### 1.1.2 ``` - Fixed regression where the .coverage file was not saved (439). Patch by Timothée Peignier. ``` ### 1.1.1 ``` - Fixed missing nose.sphinx module in source distribution (436). ``` ### 1.1.0 ``` - Revised multiprocessing implementation so that it works for test generators (399). Thanks to Rosen Diankov for the patch. - More fixes to multiprocessing implemented by Buck Golemon and Gary Donovan (also part of 399). - Lots of improvements to the attrib plugin by Bobby Impollonia (412, 411, 324 and 381) - Code coverage plugin now uses native HTML generation when coverage 3 is installed (264). Thanks to Timothée Peignier for the patch. - Xunit plugin now shows test run time in fractions of a second (317) - attr (from nose.plugins.attrib) can now be used as a class decorator (292) - Fixes Xunit plugin to handle non-UTF8 characters (395) - Fixes Xunit plugin for reporting generator tests (369) - Fixed problems with SkipTest in Python 3.2 (389) - Fixed bug in doctest plugin under python 3. Thanks to Thomas Kluyver for the patch. (391) - Fixes mishandling of custom exceptions during failures (405) - Fixed subtle bug in :option:`--first-package-wins` that made it unpredictable (293) - Fixes case where teardown_class() was called more than once (408). Thanks to Heng Liu for the patch. - Fixes coverage module names -- 'cal' used to also match calendar which was a bug (433) - Fixes capture plugin when exception message contains non-ascii chars (402) - Fixed bug in tests for twisted tools. Thanks to Thomas Kluyver for the patch. - Makes :option:`--plugins` more succinct when there are no options (235) ``` ### 1.0.0 ``` - Made nose compatible with python 3. **Huge** thanks to Alex "foogod" Stewart! ``` ### 0.11.4 ``` - Made nose compatible with Python 2.7. ``` ### 0.11.3 ``` - Fixed default plugin manager's use of plugin overriding. Thanks to rob.daylife for the bug report and patch. (323). ``` ### 0.11.2 ``` - Changed plugin loading so that external plugins loaded via extension points can override builtin plugins with the same name. - Updated multiprocess plugin and nose's packaging to allow multiprocess plugin to work on Windows (265). - Fixed bug in xunit plugin's interaction with suites and errors in module-level setup. Thanks to Mark McCague for the bug report (279). - Fixed bug in nose.loader.TestLoader that allowed Test classes that raise exceptions in __init__ to crash the test run (269). - Fixed bugs in nose's test suite that caused spurious failures on Windows. - Fixed bug in twisted tools: delayed calls were not shut down on reactor stop. Thanks to abbeyj for the patch (278). - Fixed bug where root log handlers were not cleared. For example, this was emitting unwanted messages when testing Google App Engine websites. - Fixed bug in test names output by xunit plugin. Thanks to Philip Jenvey for the bug report and patch (280). - Fixed bug in profile plugin that caused stats to fail to print under Python 2.5 and later. Thanks to djs at n-cube dot org for the bug report (285). - Improved logcapture filtering, with default setting to filter out log messages from nose itself. Thanks to gfxmonk for the patch (277). - The xunit plugin now tags skipped tests with a <skipped> testcase tag, and prevents the XML from containing invalid control characters. - Updated nose to be compatible with python 2.7 (305). - Updated loading of usage document to allow nose to run from within an egg archive (288). - Fixed IronPython checks to make nose compatible with more versions of IronPython. Thanks to Kevin Mitchell for the patch (316). ``` ### 0.11.1 ``` - Fixed bug in xunit plugin xml escaping. Thanks to Nat Williams for the bug report (266). - Fixed bug in xunit plugin that could cause test run to crash after certain types of errors or actions by other plugins. - Fixed bug in testid plugin that could cause test run to crash after certain types of errors or actions by other plugins. - Fixed bug in collect only plugin that caused it to fail when collecting from test generators. - Fixed some broken html in docs. ``` ### 0.11 ``` - **All new documentation!** nose's documentation is now generated by Sphinx. And thanks to Pam Zerbinos, it is much better organized and easier to use and read. - Two new core commandline options can help with testing namespace packages. :option:`--first-package-wins` is useful when you want to test one part of a namespace package that uses another part; in previous versions of nose, the other part of the namespace package would be evicted from sys.modules when the 2nd loaded. :option:`--traverse-namespace` is useful if you want nose to discover tests across entries in a package's __path__. (This was formerly the default behavior). - To make it easier to use custom plugins without needing setuptools, :func:`nose.core.main` and :func:`nose.core.run` now support an :doc:`addplugins <doc_tests/test_addplugins/test_addplugins>` keyword argument that takes a list of additional plugins to make available. **Note** that adding a plugin to this list **does not** activate or enable the plugin, only makes it available to be enabled via command-line or config file settings. - Thanks to Kevin Mitchell, nose is now more compatible with IronPython. IronPython is still not fully supported, but it should work. If you'd like to improve nose's support for IronPython further, please join the nose developer's list and volunteer to become the IronPython maintainer for nose! - Added multiprocess plugin that allows tests to be run in parallel across multiple processes. - Added logcapture plugin that captures logging messages and prints them with failing tests. Thanks to Max Ischenko for the implementation. - Added optional HTML coverage reports to coverage plugin. Thanks to Augie Fackler for the patch. - Added plugin that enables collection of tests in all modules. Thanks to Peter Fein for the patch (137). - Added --failed option to testid plugin. When this option is in effect, if any tests failed in the previous test run (so long as testid was active for that test run) only the failed tests will run. - Made it possible to 'yield test' in addition to 'yield test,' from test generators. Thanks to Chad Whitacre for the patch (230). - Fixed bug that caused traceback inspector to fail when source code file could not be found. Thanks to Philip Jenvey for the bug report and patch (236). - Fixed some issues limiting compatibility with IronPython. Thanks to Kevin Mitchell for the patch. - Added support for module and test case fixtures in doctest files (60). - Added --traverse-namespace commandline option that restores old default behavior of following all package __path__ entries when loading tests from packages. Thanks to Philip Jenvey for the patch (167). - Added --first-package-wins commandline option to better support testing parts of namespace packages. Thanks to Jason Coombs for the bug report (197). - Added versioned nosetests scripts (123). - Fixed bug that would cause context teardown to fail to run in some cases. Thanks to John Shaw for the bug report and patch (234). - Enabled doctest plugin to use variable other than "_" as the default result variable. Thanks to Matt Good for the patch (163). - Fixed bug that would cause unicode output to crash output capture. Thanks to schickb for the bug report (227). - Added setUp and tearDown as valid names for module-level fixtures. Thanks to AgilityNerd for the patch (211). - Fixed bug in list of valid names for package-level fixtures. Thanks to Philip Jenvey for the patch (237). - Updated man page generation using hacked up manpage writer from docutils sandbox. Thanks grubertusers.sourceforge.net for the original module. ``` ### 0.10.4 ``` - nose is now compatible with python 2.6. ``` ### 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 Changes: * Use options() instead of add_options() * addSkip() and addDeprecated() will not be called - varied error classes, no more hard-coded error handlers - check for error classes in addError instead * addError() and addFailure() will not get capt or tb_info arguments - these values are accessible in the test, if present. * wantFile() - optional package argument is never passed New methods available: * afterTest * beforeTest * describeTest * formatError * formatFailure * handleError * handleFailure * prepareTestLoader * prepareTestResult * prepareTestRunner * testName ```
Links - PyPI: https://pypi.org/project/nose - Changelog: https://pyup.io/changelogs/nose/ - Docs: http://readthedocs.org/docs/nose/

Update coverage from 4.5.3 to 4.5.3.

Changelog ### 4.5.1 ``` ---------------------------- - Now that 4.5 properly separated the ``[run] omit`` and ``[report] omit`` settings, an old bug has become apparent. If you specified a package name for ``[run] source``, then omit patterns weren't matched inside that package. This bug (`issue 638`_) is now fixed. - On Python 3.7, reporting about a decorated function with no body other than a docstring would crash coverage.py with an IndexError (`issue 640`_). This is now fixed. - Configurer plugins are now reported in the output of ``--debug=sys``. .. _issue 638: https://bitbucket.org/ned/coveragepy/issues/638/run-omit-is-ignored-since-45 .. _issue 640: https://bitbucket.org/ned/coveragepy/issues/640/indexerror-reporting-on-an-empty-decorated .. _changes_45: ``` ### 4.5 ``` -------------------------- - A new kind of plugin is supported: configurators are invoked at start-up to allow more complex configuration than the .coveragerc file can easily do. See :ref:`api_plugin` for details. This solves the complex configuration problem described in `issue 563`_. - The ``fail_under`` option can now be a float. Note that you must specify the ``[report] precision`` configuration option for the fractional part to be used. Thanks to Lars Hupfeldt Nielsen for help with the implementation. Fixes `issue 631`_. - The ``include`` and ``omit`` options can be specified for both the ``[run]`` and ``[report]`` phases of execution. 4.4.2 introduced some incorrect interactions between those phases, where the options for one were confused for the other. This is now corrected, fixing `issue 621`_ and `issue 622`_. Thanks to Daniel Hahler for seeing more clearly than I could. - The ``coverage combine`` command used to always overwrite the data file, even when no data had been read from apparently combinable files. Now, an error is raised if we thought there were files to combine, but in fact none of them could be used. Fixes `issue 629`_. - The ``coverage combine`` command could get confused about path separators when combining data collected on Windows with data collected on Linux, as described in `issue 618`_. This is now fixed: the result path always uses the path separator specified in the ``[paths]`` result. - On Windows, the HTML report could fail when source trees are deeply nested, due to attempting to create HTML filenames longer than the 250-character maximum. Now filenames will never get much larger than 200 characters, fixing `issue 627`_. Thanks to Alex Sandro for helping with the fix. .. _issue 563: https://bitbucket.org/ned/coveragepy/issues/563/platform-specific-configuration .. _issue 618: https://bitbucket.org/ned/coveragepy/issues/618/problem-when-combining-windows-generated .. _issue 621: https://bitbucket.org/ned/coveragepy/issues/621/include-ignored-warning-when-using .. _issue 622: https://bitbucket.org/ned/coveragepy/issues/622/report-omit-overwrites-run-omit .. _issue 627: https://bitbucket.org/ned/coveragepy/issues/627/failure-generating-html-reports-when-the .. _issue 629: https://bitbucket.org/ned/coveragepy/issues/629/multiple-use-of-combine-leads-to-empty .. _issue 631: https://bitbucket.org/ned/coveragepy/issues/631/precise-coverage-percentage-value .. _changes_442: ``` ### 4.4.2 ``` ---------------------------- - Support for Python 3.7. In some cases, class and module docstrings are no longer counted in statement totals, which could slightly change your total results. - Specifying both ``--source`` and ``--include`` no longer silently ignores the include setting, instead it displays a warning. Thanks, Loïc Dachary. Closes `issue 265`_ and `issue 101`_. - Fixed a race condition when saving data and multiple threads are tracing (`issue 581`_). It could produce a "dictionary changed size during iteration" RuntimeError. I believe this mostly but not entirely fixes the race condition. A true fix would likely be too expensive. Thanks, Peter Baughman for the debugging, and Olivier Grisel for the fix with tests. - Configuration values which are file paths will now apply tilde-expansion, closing `issue 589`_. - Now secondary config files like tox.ini and setup.cfg can be specified explicitly, and prefixed sections like `[coverage:run]` will be read. Fixes `issue 588`_. - Be more flexible about the command name displayed by help, fixing `issue 600`_. Thanks, Ben Finney. .. _issue 101: https://bitbucket.org/ned/coveragepy/issues/101/settings-under-report-affect-running .. _issue 581: https://bitbucket.org/ned/coveragepy/issues/581/race-condition-when-saving-data-under .. _issue 588: https://bitbucket.org/ned/coveragepy/issues/588/using-rcfile-path-to-toxini-uses-run .. _issue 589: https://bitbucket.org/ned/coveragepy/issues/589/allow-expansion-in-coveragerc .. _issue 600: https://bitbucket.org/ned/coveragepy/issues/600/get-program-name-from-command-line-when .. _changes_441: ``` ### 4.4.1 ``` ---------------------------- - No code changes: just corrected packaging for Python 2.7 Linux wheels. .. _changes_44: ``` ### 4.4 ``` -------------------------- - Reports could produce the wrong file names for packages, reporting ``pkg.py`` instead of the correct ``pkg/__init__.py``. This is now fixed. Thanks, Dirk Thomas. - XML reports could produce ``<source>`` and ``<class>`` lines that together didn't specify a valid source file path. This is now fixed. (`issue 526`_) - Namespace packages are no longer warned as having no code. (`issue 572`_) - Code that uses ``sys.settrace(sys.gettrace())`` in a file that wasn't being coverage-measured would prevent correct coverage measurement in following code. An example of this was running doctests programmatically. This is now fixed. (`issue 575`_) - Errors printed by the ``coverage`` command now go to stderr instead of stdout. - Running ``coverage xml`` in a directory named with non-ASCII characters would fail under Python 2. This is now fixed. (`issue 573`_) .. _issue 526: https://bitbucket.org/ned/coveragepy/issues/526/generated-xml-invalid-paths-for-cobertura .. _issue 572: https://bitbucket.org/ned/coveragepy/issues/572/no-python-source-warning-for-namespace .. _issue 573: https://bitbucket.org/ned/coveragepy/issues/573/cant-generate-xml-report-if-some-source .. _issue 575: https://bitbucket.org/ned/coveragepy/issues/575/running-doctest-prevents-complete-coverage ``` ### 4.4b1 ``` ---------------------------- - Some warnings can now be individually disabled. Warnings that can be disabled have a short name appended. The ``[run] disable_warnings`` setting takes a list of these warning names to disable. Closes both `issue 96`_ and `issue 355`_. - The XML report now includes attributes from version 4 of the Cobertura XML format, fixing `issue 570`_. - In previous versions, calling a method that used collected data would prevent further collection. For example, `save()`, `report()`, `html_report()`, and others would all stop collection. An explicit `start()` was needed to get it going again. This is no longer true. Now you can use the collected data and also continue measurement. Both `issue 79`_ and `issue 448`_ described this problem, and have been fixed. - Plugins can now find unexecuted files if they choose, by implementing the `find_executable_files` method. Thanks, Emil Madsen. - Minimal IronPython support. You should be able to run IronPython programs under ``coverage run``, though you will still have to do the reporting phase with CPython. - Coverage.py has long had a special hack to support CPython's need to measure the coverage of the standard library tests. This code was not installed by kitted versions of coverage.py. Now it is. .. _issue 79: https://bitbucket.org/ned/coveragepy/issues/79/save-prevents-harvesting-on-stop .. _issue 96: https://bitbucket.org/ned/coveragepy/issues/96/unhelpful-warnings-produced-when-using .. _issue 355: https://bitbucket.org/ned/coveragepy/issues/355/warnings-should-be-suppressable .. _issue 448: https://bitbucket.org/ned/coveragepy/issues/448/save-and-html_report-prevent-further .. _issue 570: https://bitbucket.org/ned/coveragepy/issues/570/cobertura-coverage-04dtd-support .. _changes_434: ``` ### 4.3.4 ``` ---------------------------- - Fixing 2.6 in version 4.3.3 broke other things, because the too-tricky exception wasn't properly derived from Exception, described in `issue 556`_. A newb mistake; it hasn't been a good few days. .. _issue 556: https://bitbucket.org/ned/coveragepy/issues/556/43-fails-if-there-are-html-files-in-the .. _changes_433: ``` ### 4.3.3 ``` ---------------------------- - Python 2.6 support was broken due to a testing exception imported for the benefit of the coverage.py test suite. Properly conditionalizing it fixed `issue 554`_ so that Python 2.6 works again. .. _issue 554: https://bitbucket.org/ned/coveragepy/issues/554/traceback-on-python-26-starting-with-432 .. _changes_432: ``` ### 4.3.2 ``` ---------------------------- - Using the ``--skip-covered`` option on an HTML report with 100% coverage would cause a "No data to report" error, as reported in `issue 549`_. This is now fixed; thanks, Loïc Dachary. - If-statements can be optimized away during compilation, for example, `if 0:` or `if __debug__:`. Coverage.py had problems properly understanding these statements which existed in the source, but not in the compiled bytecode. This problem, reported in `issue 522`_, is now fixed. - If you specified ``--source`` as a directory, then coverage.py would look for importable Python files in that directory, and could identify ones that had never been executed at all. But if you specified it as a package name, that detection wasn't performed. Now it is, closing `issue 426`_. Thanks to Loïc Dachary for the fix. - If you started and stopped coverage measurement thousands of times in your process, you could crash Python with a "Fatal Python error: deallocating None" error. This is now fixed. Thanks to Alex Groce for the bug report. - On PyPy, measuring coverage in subprocesses could produce a warning: "Trace function changed, measurement is likely wrong: None". This was spurious, and has been suppressed. - Previously, coverage.py couldn't start on Jython, due to that implementation missing the multiprocessing module (`issue 551`_). This problem has now been fixed. Also, `issue 322`_ about not being able to invoke coverage conveniently, seems much better: ``jython -m coverage run myprog.py`` works properly. - Let's say you ran the HTML report over and over again in the same output directory, with ``--skip-covered``. And imagine due to your heroic test-writing efforts, a file just achieved the goal of 100% coverage. With coverage.py 4.3, the old HTML file with the less-than-100% coverage would be left behind. This file is now properly deleted. .. _issue 322: https://bitbucket.org/ned/coveragepy/issues/322/cannot-use-coverage-with-jython .. _issue 426: https://bitbucket.org/ned/coveragepy/issues/426/difference-between-coverage-results-with .. _issue 522: https://bitbucket.org/ned/coveragepy/issues/522/incorrect-branch-reporting-with-__debug__ .. _issue 549: https://bitbucket.org/ned/coveragepy/issues/549/skip-covered-with-100-coverage-throws-a-no .. _issue 551: https://bitbucket.org/ned/coveragepy/issues/551/coveragepy-cannot-be-imported-in-jython27 .. _changes_431: ``` ### 4.3.1 ``` ---------------------------- - Some environments couldn't install 4.3, as described in `issue 540`_. This is now fixed. - The check for conflicting ``--source`` and ``--include`` was too simple in a few different ways, breaking a few perfectly reasonable use cases, described in `issue 541`_. The check has been reverted while we re-think the fix for `issue 265`_. .. _issue 540: https://bitbucket.org/ned/coveragepy/issues/540/cant-install-coverage-v43-into-under .. _issue 541: https://bitbucket.org/ned/coveragepy/issues/541/coverage-43-breaks-nosetest-with-coverage .. _changes_43: ``` ### 4.3 ``` -------------------------- Special thanks to **Loïc Dachary**, who took an extraordinary interest in coverage.py and contributed a number of improvements in this release. - Subprocesses that are measured with `automatic subprocess measurement`_ used to read in any pre-existing data file. This meant data would be incorrectly carried forward from run to run. Now those files are not read, so each subprocess only writes its own data. Fixes `issue 510`_. - The ``coverage combine`` command will now fail if there are no data files to combine. The combine changes in 4.2 meant that multiple combines could lose data, leaving you with an empty .coverage data file. Fixes `issue 525`_, `issue 412`_, `issue 516`_, and probably `issue 511`_. - Coverage.py wouldn't execute `sys.excepthook`_ when an exception happened in your program. Now it does, thanks to Andrew Hoos. Closes `issue 535`_. - Branch coverage fixes: - Branch coverage could misunderstand a finally clause on a try block that never continued on to the following statement, as described in `issue 493`_. This is now fixed. Thanks to Joe Doherty for the report and Loïc Dachary for the fix. - A while loop with a constant condition (while True) and a continue statement would be mis-analyzed, as described in `issue 496`_. This is now fixed, thanks to a bug report by Eli Skeggs and a fix by Loïc Dachary. - While loops with constant conditions that were never executed could result in a non-zero coverage report. Artem Dayneko reported this in `issue 502`_, and Loïc Dachary provided the fix. - The HTML report now supports a ``--skip-covered`` option like the other reporting commands. Thanks, Loïc Dachary for the implementation, closing `issue 433`_. - Options can now be read from a tox.ini file, if any. Like setup.cfg, sections are prefixed with "coverage:", so ``[run]`` options will be read from the ``[coverage:run]`` section of tox.ini. Implements part of `issue 519`_. Thanks, Stephen Finucane. - Specifying both ``--source`` and ``--include`` no longer silently ignores the include setting, instead it fails with a message. Thanks, Nathan Land and Loïc Dachary. Closes `issue 265`_. - The ``Coverage.combine`` method has a new parameter, ``strict=False``, to support failing if there are no data files to combine. - When forking subprocesses, the coverage data files would have the same random number appended to the file name. This didn't cause problems, because the file names had the process id also, making collisions (nearly) impossible. But it was disconcerting. This is now fixed. - The text report now properly sizes headers when skipping some files, fixing `issue 524`_. Thanks, Anthony Sottile and Loïc Dachary. - Coverage.py can now search .pex files for source, just as it can .zip and .egg. Thanks, Peter Ebden. - Data files are now about 15% smaller. - Improvements in the ``[run] debug`` setting: - The "dataio" debug setting now also logs when data files are deleted during combining or erasing. - A new debug option, "multiproc", for logging the behavior of ``concurrency=multiprocessing``. - If you used the debug options "config" and "callers" together, you'd get a call stack printed for every line in the multi-line config output. This is now fixed. - Fixed an unusual bug involving multiple coding declarations affecting code containing code in multi-line strings: `issue 529`_. - Coverage.py will no longer be misled into thinking that a plain file is a package when interpreting ``--source`` options. Thanks, Cosimo Lupo. - If you try to run a non-Python file with coverage.py, you will now get a more useful error message. `Issue 514`_. - The default pragma regex changed slightly, but this will only matter to you if you are deranged and use mixed-case pragmas. - Deal properly with non-ASCII file names in an ASCII-only world, `issue 533`_. - Programs that set Unicode configuration values could cause UnicodeErrors when generating HTML reports. Pytest-cov is one example. This is now fixed. - Prevented deprecation warnings from configparser that happened in some circumstances, closing `issue 530`_. - Corrected the name of the jquery.ba-throttle-debounce.js library. Thanks, Ben Finney. Closes `issue 505`_. - Testing against PyPy 5.6 and PyPy3 5.5. - Switched to pytest from nose for running the coverage.py tests. - Renamed AUTHORS.txt to CONTRIBUTORS.txt, since there are other ways to contribute than by writing code. Also put the count of contributors into the author string in setup.py, though this might be too cute. .. _sys.excepthook: https://docs.python.org/3/library/sys.htmlsys.excepthook .. _issue 265: https://bitbucket.org/ned/coveragepy/issues/265/when-using-source-include-is-silently .. _issue 412: https://bitbucket.org/ned/coveragepy/issues/412/coverage-combine-should-error-if-no .. _issue 433: https://bitbucket.org/ned/coveragepy/issues/433/coverage-html-does-not-suport-skip-covered .. _issue 493: https://bitbucket.org/ned/coveragepy/issues/493/confusing-branching-failure .. _issue 496: https://bitbucket.org/ned/coveragepy/issues/496/incorrect-coverage-with-branching-and .. _issue 502: https://bitbucket.org/ned/coveragepy/issues/502/incorrect-coverage-report-with-cover .. _issue 505: https://bitbucket.org/ned/coveragepy/issues/505/use-canonical-filename-for-debounce .. _issue 514: https://bitbucket.org/ned/coveragepy/issues/514/path-to-problem-file-not-reported-when .. _issue 510: https://bitbucket.org/ned/coveragepy/issues/510/erase-still-needed-in-42 .. _issue 511: https://bitbucket.org/ned/coveragepy/issues/511/version-42-coverage-combine-empties .. _issue 516: https://bitbucket.org/ned/coveragepy/issues/516/running-coverage-combine-twice-deletes-all .. _issue 519: https://bitbucket.org/ned/coveragepy/issues/519/coverage-run-sections-in-toxini-or-as .. _issue 524: https://bitbucket.org/ned/coveragepy/issues/524/coverage-report-with-skip-covered-column .. _issue 525: https://bitbucket.org/ned/coveragepy/issues/525/coverage-combine-when-not-in-parallel-mode .. _issue 529: https://bitbucket.org/ned/coveragepy/issues/529/encoding-marker-may-only-appear-on-the .. _issue 530: https://bitbucket.org/ned/coveragepy/issues/530/deprecationwarning-you-passed-a-bytestring .. _issue 533: https://bitbucket.org/ned/coveragepy/issues/533/exception-on-unencodable-file-name .. _issue 535: https://bitbucket.org/ned/coveragepy/issues/535/sysexcepthook-is-not-called .. _changes_42: ``` ### 4.2 ``` -------------------------- - Since ``concurrency=multiprocessing`` uses subprocesses, options specified on the coverage.py command line will not be communicated down to them. Only options in the configuration file will apply to the subprocesses. Previously, the options didn't apply to the subprocesses, but there was no indication. Now it is an error to use ``--concurrency=multiprocessing`` and other run-affecting options on the command line. This prevents failures like those reported in `issue 495`_. - Filtering the HTML report is now faster, thanks to Ville Skyttä. .. _issue 495: https://bitbucket.org/ned/coveragepy/issues/495/branch-and-concurrency-are-conflicting ``` ### 4.2b1 ``` ---------------------------- Work from the PyCon 2016 Sprints! - BACKWARD INCOMPATIBILITY: the ``coverage combine`` command now ignores an existing ``.coverage`` data file. It used to include that file in its combining. This caused confusing results, and extra tox "clean" steps. If you want the old behavior, use the new ``coverage combine --append`` option. - The ``concurrency`` option can now take multiple values, to support programs using multiprocessing and another library such as eventlet. This is only possible in the configuration file, not from the command line. The configuration file is the only way for sub-processes to all run with the same options. Fixes `issue 484`_. Thanks to Josh Williams for prototyping. - Using a ``concurrency`` setting of ``multiprocessing`` now implies ``--parallel`` so that the main program is measured similarly to the sub-processes. - When using `automatic subprocess measurement`_, running coverage commands would create spurious data files. This is now fixed, thanks to diagnosis and testing by Dan Riti. Closes `issue 492`_. - A new configuration option, ``report:sort``, controls what column of the text report is used to sort the rows. Thanks to Dan Wandschneider, this closes `issue 199`_. - The HTML report has a more-visible indicator for which column is being sorted. Closes `issue 298`_, thanks to Josh Williams. - If the HTML report cannot find the source for a file, the message now suggests using the ``-i`` flag to allow the report to continue. Closes `issue 231`_, thanks, Nathan Land. - When repo