From b153c116dae0c16de7a4c757af6c4f0baf93e13d Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Mon, 12 Jul 2010 07:19:36 -0400 Subject: Some notes about how the nose plugin works. --- lab/cover-plugin.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 lab/cover-plugin.txt diff --git a/lab/cover-plugin.txt b/lab/cover-plugin.txt new file mode 100644 index 00000000..927fff81 --- /dev/null +++ b/lab/cover-plugin.txt @@ -0,0 +1,54 @@ +== nose cover plugin flow == + +- configure: + set self.coverPackages: list of names of packages + +- begin: + self.skipModules = sys.modules.keys()[:] + set coverage.exclude (why?) + coverage.start + + +- report: + coverage.stop() + modules = [ module + for name, module in sys.modules.items() + if self.wantModuleCoverage(name, module) ] + coverage.report(modules) + +- wantModuleCoverage(name, module): + if self.coverPackages: + for package in self.coverPackages: + want_it = False + if name.startswith(package): + if self.coverTests: + want_it = True + else: + want_it = not self.conf.testMatch.search(name) + if want_it: + return True + if name in self.skipModules: + return False + + if self.conf.testMatch.search(name) and not self.coverTests: + return False + + return not self.coverPackages + +- wantFile: + + + + +source, include, omit: + + # self.source is a list of canonical directories for the packages. + # canon_dir is the canonical directory containing the source file. + + if self.source: + for s in self.source: + if is_contained(s, canon_dir): + break + else: + # This file wasn't in any source. + return False -- cgit v1.2.1