1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
from StringIO import StringIO
from curses import tigetstr, tparm
import sys
from nose.tools import eq_
# This tests that __all__ is correct, since we use below everything that should
# be imported:
from terminator import *
def test_capability():
"""Check that a capability lookup works.
Also test that Terminal grabs a reasonable default stream. This test
assumes it will be run from a tty.
"""
sc = tigetstr('sc')
t = Terminal()
eq_(t.save, sc)
eq_(t.save, sc) # Make sure caching doesn't screw it up.
def test_capability_without_tty():
"""Assert capability templates are '' when stream is not a tty."""
t = Terminal(stream=StringIO())
eq_(t.save, '')
def test_parametrization():
"""Test parametrizing a capability."""
eq_(Terminal().cup(3, 4), tparm(tigetstr('cup'), 3, 4))
def height_and_width():
"""Assert that ``height_and_width()`` returns ints."""
t = Terminal()
assert isinstance(int, t.height)
assert isinstance(int, t.width)
def test_stream_attr():
"""Make sure Terminal exposes a ``stream`` attribute that defaults to something sane."""
eq_(Terminal().stream, sys.__stdout__)
def test_location():
"""Make sure ``location()`` does what it claims."""
# Let the Terminal grab the actual tty and call setupterm() so things work:
t = Terminal()
# Then rip it away, replacing it with something we can check later:
output = t.stream = StringIO()
with t.location(3, 4):
output.write('hi')
eq_(output.getvalue(), tigetstr('sc') +
tparm(tigetstr('cup'), 4, 3) +
'hi' +
tigetstr('rc'))
def test_null_fileno():
"""Make sure ``Terinal`` works when ``fileno`` is ``None``.
This simulates piping output to another program.
"""
out = stream=StringIO()
out.fileno = None
t = Terminal(stream=out)
eq_(t.save, '')
|