##// END OF EJS Templates
Merge pull request #955 from minrk/websocket...
Merge pull request #955 from minrk/websocket Websocket fixes: 1. alert client on failed and lost web socket connections A long message is given if the connection fails within 1s, which assumes the connection did not succeed. Otherwise, it is a short 'connection closed unexpectedly'. This also means that clients are notified on server termination (for better or worse). 2. remove superfluous ws-hostname parameter from notebook This made the notebook server artificially and unnecessarily brittle against tunneling and explicit hostname resolution. Now, the ws_url is defined based on the Origin of the request for the url, so it always matches the http[s] url. This means that it will follow the same tunnel, and the hostname will be already resolved. Resolving the hostname twice makes no sense at all unless the websockets are going to a different server than the http requests. Implemented as a property, so it should still be easy to change for future cases where it might behave differently (e.g. websockets on a different host, or at a non-root url).

File last commit:

r3350:a41b73bf
r5301:f6b3d8ff merge
Show More
test_formatters.py
74 lines | 1.8 KiB | text/x-python | PythonLexer
"""Tests for the Formatters.
"""
from math import pi
try:
import numpy
except:
numpy = None
import nose.tools as nt
from IPython.core.formatters import FormatterABC, PlainTextFormatter
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():
f = PlainTextFormatter()
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():
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)