📄 testdocs.py
字号:
import syssys.path = ['../../lib', './lib/'] + sys.pathimport osimport reimport doctestimport sqlalchemy.util as utilimport sqlalchemy.logging as salogimport loggingsalog.default_enabled=Truerootlogger = logging.getLogger('sqlalchemy')rootlogger.setLevel(logging.NOTSET)class MyStream(object): def write(self, string): sys.stdout.write(string) sys.stdout.flush() def flush(self): passhandler = logging.StreamHandler(MyStream())handler.setFormatter(logging.Formatter('%(message)s'))rootlogger.addHandler(handler)def teststring(s, name, globs=None, verbose=None, report=True, optionflags=0, extraglobs=None, raise_on_error=False, parser=doctest.DocTestParser()): from doctest import DebugRunner, DocTestRunner, master # Assemble the globals. if globs is None: globs = {} else: globs = globs.copy() if extraglobs is not None: globs.update(extraglobs) if raise_on_error: runner = DebugRunner(verbose=verbose, optionflags=optionflags) else: runner = DocTestRunner(verbose=verbose, optionflags=optionflags) test = parser.get_doctest(s, globs, name, name, 0) runner.run(test) if report: runner.summarize() if master is None: master = runner else: master.merge(runner) return runner.failures, runner.triesdef replace_file(s, newfile): engine = r"'(sqlite|postgres|mysql):///.*'" engine = re.compile(engine, re.MULTILINE) s, n = re.subn(engine, "'sqlite:///" + newfile + "'", s) if not n: raise ValueError("Couldn't find suitable create_engine call to replace '%s' in it" % oldfile) return sfor filename in ('ormtutorial', 'sqlexpression'): filename = 'content/%s.txt' % filename s = open(filename).read() #s = replace_file(s, ':memory:') s = re.sub(r'{(?:stop|sql|opensql)}', '', s) teststring(s, filename)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -