##// END OF EJS Templates
Fix various problems highlighted by the test suite.
Fix various problems highlighted by the test suite.

File last commit:

r3350:a41b73bf
r4759:6feb7557
Show More
test_formatters.py
74 lines | 1.8 KiB | text/x-python | PythonLexer
/ IPython / core / tests / test_formatters.py
Robert Kern
ENH: Implement and test the default pretty formatter.
r3209 """Tests for the Formatters.
"""
MinRK
add `float_precision` trait to PlainTextFormatter...
r3350 from math import pi
try:
import numpy
except:
numpy = None
Robert Kern
ENH: Implement and test the default pretty formatter.
r3209 import nose.tools as nt
MinRK
add `float_precision` trait to PlainTextFormatter...
r3350 from IPython.core.formatters import FormatterABC, PlainTextFormatter
Robert Kern
ENH: Implement and test the default pretty formatter.
r3209
class A(object):
def __repr__(self):
return 'A()'
class B(A):
def __repr__(self):
return 'B()'
def foo_printer(obj, pp, cycle):
pp.text('foo')
def test_pretty():
MinRK
add `float_precision` trait to PlainTextFormatter...
r3350 f = PlainTextFormatter()
Robert Kern
ENH: Implement and test the default pretty formatter.
r3209 f.for_type(A, foo_printer)
nt.assert_equals(f(A()), 'foo')
nt.assert_equals(f(B()), 'foo')
f.pprint = False
nt.assert_equals(f(A()), 'A()')
nt.assert_equals(f(B()), 'B()')
def test_deferred():
MinRK
add `float_precision` trait to PlainTextFormatter...
r3350 f = PlainTextFormatter()
def test_precision():
"""test various values for float_precision."""
f = PlainTextFormatter()
nt.assert_equals(f(pi), repr(pi))
f.float_precision = 0
if numpy:
po = numpy.get_printoptions()
nt.assert_equals(po['precision'], 0)
nt.assert_equals(f(pi), '3')
f.float_precision = 2
if numpy:
po = numpy.get_printoptions()
nt.assert_equals(po['precision'], 2)
nt.assert_equals(f(pi), '3.14')
f.float_precision = '%g'
if numpy:
po = numpy.get_printoptions()
nt.assert_equals(po['precision'], 2)
nt.assert_equals(f(pi), '3.14159')
f.float_precision = '%e'
nt.assert_equals(f(pi), '3.141593e+00')
f.float_precision = ''
if numpy:
po = numpy.get_printoptions()
nt.assert_equals(po['precision'], 8)
nt.assert_equals(f(pi), repr(pi))
def test_bad_precision():
"""test various invalid values for float_precision."""
f = PlainTextFormatter()
def set_fp(p):
f.float_precision=p
nt.assert_raises(ValueError, set_fp, '%')
nt.assert_raises(ValueError, set_fp, '%.3f%i')
nt.assert_raises(ValueError, set_fp, 'foo')
nt.assert_raises(ValueError, set_fp, -1)
Robert Kern
ENH: Implement and test the default pretty formatter.
r3209