Added a custom doctest OutputChecker that ignores differences between ints and longs in values returned from the database; refs #238
git-svn-id: http://code.djangoproject.com/svn/django/trunk@465 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
254f31819b
commit
3a1ae2164b
|
@ -27,6 +27,7 @@ class DjangoDoctestRunner(doctest.DocTestRunner):
|
||||||
def __init__(self, verbosity_level, *args, **kwargs):
|
def __init__(self, verbosity_level, *args, **kwargs):
|
||||||
self.verbosity_level = verbosity_level
|
self.verbosity_level = verbosity_level
|
||||||
doctest.DocTestRunner.__init__(self, *args, **kwargs)
|
doctest.DocTestRunner.__init__(self, *args, **kwargs)
|
||||||
|
self._checker = DjangoDoctestOutputChecker()
|
||||||
|
|
||||||
def report_start(self, out, test, example):
|
def report_start(self, out, test, example):
|
||||||
if self.verbosity_level > 1:
|
if self.verbosity_level > 1:
|
||||||
|
@ -41,6 +42,16 @@ class DjangoDoctestRunner(doctest.DocTestRunner):
|
||||||
log_error(test.name, "API test raised an exception",
|
log_error(test.name, "API test raised an exception",
|
||||||
"Code: %r\nLine: %s\nException: %s" % (example.source.strip(), example.lineno, tb))
|
"Code: %r\nLine: %s\nException: %s" % (example.source.strip(), example.lineno, tb))
|
||||||
|
|
||||||
|
class DjangoDoctestOutputChecker(doctest.OutputChecker):
|
||||||
|
def check_output(self, want, got, optionflags):
|
||||||
|
ok = doctest.OutputChecker.check_output(self, want, got, optionflags)
|
||||||
|
if not ok and (want.strip().endswith("L") or got.strip().endswith("L")):
|
||||||
|
try:
|
||||||
|
return long(want.strip()) == long(got.strip())
|
||||||
|
except ValueError:
|
||||||
|
return False
|
||||||
|
return ok
|
||||||
|
|
||||||
class TestRunner:
|
class TestRunner:
|
||||||
def __init__(self, verbosity_level=0):
|
def __init__(self, verbosity_level=0):
|
||||||
self.verbosity_level = verbosity_level
|
self.verbosity_level = verbosity_level
|
||||||
|
|
Loading…
Reference in New Issue