Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def configureIcecreamOutput(prefix=None, outputFunction=None,
argToStringFunction=None, includeContext=None):
oldPrefix = ic.prefix
oldOutputFunction = ic.outputFunction
oldArgToStringFunction = ic.argToStringFunction
oldIncludeContext = ic.includeContext
if prefix:
ic.configureOutput(prefix=prefix)
if outputFunction:
ic.configureOutput(outputFunction=outputFunction)
if argToStringFunction:
ic.configureOutput(argToStringFunction=argToStringFunction)
if includeContext:
ic.configureOutput(includeContext=includeContext)
yield
ic.configureOutput(
oldPrefix, oldOutputFunction, oldArgToStringFunction,
oldIncludeContext)
def testMultilineValueWrapped(self):
# Multiline values are line wrapped.
multilineStr = 'line1\nline2'
with disableColoring(), captureStandardStreams() as (out, err):
ic(multilineStr)
pair = parseOutputIntoPairs(out, err, 2)[0][0]
assert pair == ('multilineStr', ic.argToStringFunction(multilineStr))
def testMultipleArgumentsLongLineWrapped(self):
# A single long line with multiple variables is line wrapped.
val = '*' * int(ic.lineWrapWidth / 4)
valStr = ic.argToStringFunction(val)
v1 = v2 = v3 = v4 = val
with disableColoring(), captureStandardStreams() as (out, err):
ic(v1, v2, v3, v4)
pairs = parseOutputIntoPairs(out, err, 4)
assert pairs == [[(k, valStr)] for k in ['v1', 'v2', 'v3', 'v4']]
lines = err.getvalue().splitlines()
assert (
lines[0].startswith(ic.prefix) and
lines[1].startswith(' ' * len(ic.prefix)) and
lines[2].startswith(' ' * len(ic.prefix)) and
lines[3].startswith(' ' * len(ic.prefix)))
def testSingleArgumentLongLineNotWrapped(self):
# A single long line with one argument is not line wrapped.
longStr = '*' * (ic.lineWrapWidth + 1)
with disableColoring(), captureStandardStreams() as (out, err):
ic(longStr)
pair = parseOutputIntoPairs(out, err, 1)[0][0]
assert len(err.getvalue()) > ic.lineWrapWidth
assert pair == ('longStr', ic.argToStringFunction(longStr))
def testIncludeContextMultiLine(self):
multilineStr = 'line1\nline2'
with configureIcecreamOutput(includeContext=True):
with disableColoring(), captureStandardStreams() as (out, err):
ic(multilineStr)
firstLine = err.getvalue().splitlines()[0]
assert lineIsContext(firstLine)
pair = parseOutputIntoPairs(out, err, 3)[1][0]
assert pair == ('multilineStr', ic.argToStringFunction(multilineStr))