Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_timerit_default_verbosity():
with CaptureStdout() as cap:
Timerit(10, '').call(lambda: None)
assert cap.text == '', 'should be quiet by default when label is not given'
with CaptureStdout() as cap:
Timerit(10, 'alabel').call(lambda: None)
assert cap.text != '', 'should be verbose by default when label is given'
'''
def foo():
"""
Example:
>>> print('i wanna see this')
"""
''')
with utils.TempDir() as temp:
dpath = temp.dpath
modpath = join(dpath, 'test_example_run.py')
with open(modpath, 'w') as file:
file.write(source)
with utils.CaptureStdout() as cap:
runner.doctest_module(modpath, 'foo', argv=[''])
assert 'i wanna see this' in cap.text
>>> print('i wanna see this')
"""
''')
config = {
'default_runtime_state': {'SKIP': True},
}
with utils.TempDir() as temp:
dpath = temp.dpath
modpath = join(dpath, 'test_example_run.py')
with open(modpath, 'w') as file:
file.write(source)
with utils.CaptureStdout() as cap:
runner.doctest_module(modpath, 'foo', argv=[''], config=config)
assert 'SKIPPED' in cap.text
print('')
import hashlib
hasher = hashlib.sha1()
hasher.update(source.encode('utf8'))
hashid = hasher.hexdigest()[0:8]
with utils.TempDir() as temp:
dpath = temp.dpath
modpath = join(dpath, 'test_linenos_' + hashid + '.py')
with open(modpath, 'w') as file:
file.write(source)
with utils.CaptureStdout(supress=False) as cap:
runner.doctest_module(modpath, 'all', argv=[''], style=style)
cprint('\n\n --- --- \n\n', COLOR)
return cap.text
if global_exec:
# Hack to make it easier to specify multi-line input on the CLI
global_source = utils.codeblock(global_exec.replace('\\n', '\n'))
global_code = compile(
global_source, mode='exec',
filename='',
flags=compileflags, dont_inherit=True
)
exec(global_code, test_globals)
# Can't do this because we can't force execution of SCRIPTS
# if self.is_disabled():
# runstate['SKIP'] = True
# Use the same capture object for all parts in the test
cap = utils.CaptureStdout(supress=self._suppressed_stdout)
with warnings.catch_warnings(record=True) as self.warn_list:
for partx, part in enumerate(self._parts):
# Extract directives and and update runtime state
runstate.update(part.directives)
# Handle runtime actions
if runstate['SKIP'] or len(runstate['REQUIRES']) > 0:
self._skipped_parts.append(part)
continue
# Prepare to capture stdout and evaluated values
self.failed_part = part
got_eval = constants.NOT_EVALED
try:
# Compile code, handle syntax errors
# part.compile_mode can be single, exec, or eval.
def demo_runtime_warning():
"""
Example:
>>> import warnings
>>> warnings.warn('in-code warning')
"""
''')
temp = utils.TempDir(persist=True)
temp.ensure()
dpath = temp.dpath
modpath = join(dpath, 'demo_runner_syntax_error.py')
with open(modpath, 'w') as file:
file.write(source)
with utils.CaptureStdout() as cap:
runner.doctest_module(modpath, 'all', argv=[''], style='freeform',
verbose=1)
print('CAPTURED [[[[[[[[')
print(utils.indent(cap.text))
print(']]]]]]]] # CAPTURED')
if six.PY2:
captext = utils.ensure_unicode(cap.text)
else:
captext = cap.text
if True or not six.PY2: # Why does this have issues on the dashboards?
assert '1 run-time warnings' in captext
assert '2 parse-time warnings' in captext
def test_timer_nonewline():
with CaptureStdout() as cap:
timer = Timer(newline=False, verbose=1)
timer.tic()
timer.toc()
assert cap.text.replace('u', '').startswith("\ntic('')...toc('')")
>>> pass
"""
pass
def fake_test2():
pass
''')
with utils.TempDir() as temp:
dpath = temp.dpath
modpath = join(dpath, 'test_list.py')
with open(modpath, 'w') as file:
file.write(source)
with utils.CaptureStdout() as cap:
runner.doctest_module(modpath, 'list', argv=[''])
assert 'real_test1' in cap.text
assert 'real_test2' in cap.text
assert 'fake_test1' not in cap.text
assert 'fake_test2' not in cap.text
# test command=None
with utils.CaptureStdout() as cap:
runner.doctest_module(modpath, None, argv=[''])
assert 'real_test1' in cap.text
assert 'real_test2' in cap.text
assert 'fake_test1' not in cap.text
assert 'fake_test2' not in cap.text