Created
December 14, 2011 16:32
-
-
Save jpellerin/1477317 to your computer and use it in GitHub Desktop.
issue #7/#306 patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -r 34c6847853b7 nose/plugins/doctests.py | |
--- a/nose/plugins/doctests.py Fri Oct 09 18:40:28 2009 -0500 | |
+++ b/nose/plugins/doctests.py Wed Nov 11 20:57:51 2009 -0700 | |
@@ -170,6 +170,11 @@ | |
help="Find fixtures for a doctest file in module " | |
"with this name appended to the base name " | |
"of the doctest file") | |
+ parser.add_option('--doctest-options', action="append", | |
+ dest="doctestOptions", | |
+ metavar="OPTIONS", | |
+ help="Specify options to pass to doctest. " + | |
+ "Eg. '+ELLIPSIS,+NORMALIZE_WHITESPACE'") | |
# Set the default as a list, if given in env; otherwise | |
# an additional value set on the command line will cause | |
# an error. | |
@@ -186,7 +191,23 @@ | |
self.extension = tolist(options.doctestExtension) | |
self.fixtures = options.doctestFixtures | |
self.finder = doctest.DocTestFinder() | |
- | |
+ self.optionflags = 0 | |
+ if options.doctestOptions: | |
+ flags = ",".join(options.doctestOptions).split(',') | |
+ for flag in flags: | |
+ try: | |
+ if flag.startswith('+'): | |
+ self.optionflags |= getattr(doctest, flag[1:]) | |
+ elif flag.startswith('-'): | |
+ self.optionflags &= ~getattr(doctest, flag[1:]) | |
+ else: | |
+ raise ValueError( | |
+ "Must specify doctest options with starting " + | |
+ "'+' or '-'. Got %s" % (flag,)) | |
+ except AttributeError: | |
+ raise ValueError("Unknown doctest option %s" % | |
+ (flag[1:],)) | |
+ | |
def prepareTestLoader(self, loader): | |
"""Capture loader's suiteClass. | |
@@ -222,7 +243,9 @@ | |
continue | |
if not test.filename: | |
test.filename = module_file | |
- cases.append(DocTestCase(test, result_var=self.doctest_result_var)) | |
+ cases.append(DocTestCase(test, | |
+ optionflags=self.optionflags, | |
+ result_var=self.doctest_result_var)) | |
if cases: | |
yield self.suiteClass(cases, context=module, can_split=False) | |
@@ -265,6 +288,7 @@ | |
if test.examples: | |
case = DocFileCase( | |
test, | |
+ optionflags=self.optionflags, | |
setUp=getattr(fixture_context, 'setup_test', None), | |
tearDown=getattr(fixture_context, 'teardown_test', None), | |
result_var=self.doctest_result_var) | |
@@ -285,7 +309,7 @@ | |
for test in doctests: | |
if len(test.examples) == 0: | |
continue | |
- yield DocTestCase(test, obj=obj, | |
+ yield DocTestCase(test, obj=obj, optionflags=self.optionflags, | |
result_var=self.doctest_result_var) | |
def matches(self, name): |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment