mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-28 03:17:12 +08:00
b766ce6ebd
Implements a `CachedObject` utility class for wrapping cached results with an expiration date.
73 lines
1.9 KiB
Python
73 lines
1.9 KiB
Python
from __future__ import print_function
|
|
import sys
|
|
import doctest
|
|
from unittest import TestCase
|
|
|
|
from zipline.lib import adjustment
|
|
from zipline.modelling import (
|
|
engine,
|
|
expression,
|
|
)
|
|
from zipline.utils import (
|
|
cache,
|
|
memoize,
|
|
preprocess,
|
|
test_utils,
|
|
)
|
|
|
|
|
|
class DoctestTestCase(TestCase):
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
import pdb
|
|
# Workaround for the issue addressed by this (unmerged) PR to pdbpp:
|
|
# https://bitbucket.org/antocuni/pdb/pull-request/40/fix-ensure_file_can_write_unicode/diff # noqa
|
|
if '_pdbpp_path_hack' in pdb.__file__:
|
|
cls._skip = True
|
|
else:
|
|
cls._skip = False
|
|
cls.flags = doctest.REPORT_CDIFF | doctest.IGNORE_EXCEPTION_DETAIL
|
|
|
|
def _check_docs(self, module):
|
|
if self._skip:
|
|
# Printing this directly to __stdout__ so that it doesn't get
|
|
# captured by nose.
|
|
print("Warning: Skipping doctests for %s because "
|
|
"pdbpp is installed." % module.__name__, file=sys.__stdout__)
|
|
return
|
|
try:
|
|
doctest.testmod(
|
|
module,
|
|
verbose=True,
|
|
raise_on_error=True,
|
|
optionflags=self.flags,
|
|
)
|
|
except doctest.UnexpectedException as e:
|
|
raise e.exc_info[1]
|
|
except doctest.DocTestFailure as e:
|
|
print("Got:")
|
|
print(e.got)
|
|
raise
|
|
|
|
def test_adjustment_docs(self):
|
|
self._check_docs(adjustment)
|
|
|
|
def test_expression_docs(self):
|
|
self._check_docs(expression)
|
|
|
|
def test_engine_docs(self):
|
|
self._check_docs(engine)
|
|
|
|
def test_memoize_docs(self):
|
|
self._check_docs(memoize)
|
|
|
|
def test_test_utils_docs(self):
|
|
self._check_docs(test_utils)
|
|
|
|
def test_preprocess_docs(self):
|
|
self._check_docs(preprocess)
|
|
|
|
def test_cache_docs(self):
|
|
self._check_docs(cache)
|