From 049b295dccb2b40398d8e0e1e5fccbc2cdf61af8 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Mon, 11 Aug 2014 08:43:26 -0700 Subject: FIX: Add simple test --- CHANGELOG | 4 ++-- nose/plugins/cover.py | 18 ++++++++++++++++-- unit_tests/test_cover_plugin.py | 8 ++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 25d5090..902d606 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,8 @@ - Fix loading packages from capitalised package on Windows Patch by Thomas Kluyver +- Add option to suppress printing of coverage report + Patch by Eric Larson. 1.3.6 @@ -32,8 +34,6 @@ 1.3.3 -- Add option to suppress printing of coverage report - Patch by Eric Larson. - Fixed a minor issue with the reported version number. 1.3.2 diff --git a/nose/plugins/cover.py b/nose/plugins/cover.py index 527f484..4bae004 100644 --- a/nose/plugins/cover.py +++ b/nose/plugins/cover.py @@ -146,6 +146,10 @@ class Coverage(Plugin): if options.cover_xml: self.coverXmlFile = options.cover_xml_file log.debug('Will put XML coverage report in %s', self.coverXmlFile) + # Coverage uses True to mean default + self.coverConfigFile = True + if options.cover_config_file: + self.coverConfigFile = options.cover_config_file self.coverPrint = not options.cover_no_print if self.enabled: self.status['active'] = True @@ -156,7 +160,18 @@ class Coverage(Plugin): self.coverInstance.is_worker = conf.worker self.coverInstance.exclude('#pragma[: ]+[nN][oO] [cC][oO][vV][eE][rR]') - def begin(self): + log.debug("Coverage begin") + self.skipModules = sys.modules.keys()[:] + if self.coverErase: + log.debug("Clearing previously collected coverage statistics") + self.coverInstance.combine() + self.coverInstance.erase() + + if not self.coverInstance.is_worker: + self.coverInstance.load() + self.coverInstance.start() + + def beforeTest(self, *args, **kwargs): """ Begin recording coverage information. """ @@ -174,7 +189,6 @@ class Coverage(Plugin): self.coverInstance.stop() self.coverInstance.save() - def report(self, stream): """ Output code coverage report. diff --git a/unit_tests/test_cover_plugin.py b/unit_tests/test_cover_plugin.py index b95c590..5999413 100644 --- a/unit_tests/test_cover_plugin.py +++ b/unit_tests/test_cover_plugin.py @@ -1,10 +1,8 @@ import os -import sys from optparse import OptionParser from nose.config import Config from nose.plugins.cover import Coverage from nose.tools import eq_ -import unittest class TestCoveragePlugin(object): @@ -14,6 +12,11 @@ class TestCoveragePlugin(object): ['pkg1', 'pkg2', 'pkg3'], [], 'pkg1,pkg2,pkg3', 'NOSE_COVER_PACKAGE') + def test_cover_options_noprint(self): + _test_options_helper('--cover-no-print', 'coverPrint', + False, True, + env_key='NOSE_COVER_NO_PRINT') + def test_cover_options_erase(self): _test_options_helper('--cover-erase', 'coverErase', True, False, @@ -63,6 +66,7 @@ class TestCoveragePlugin(object): finally: os.unlink('not_default_config_file') + def _test_options_helper(arg_option, cover_option, expected_set, expected_not_set, arg_value=None, env_key=None): -- cgit v1.2.1