From ba9489d42e8535435e76e97d0da792998abc893e Mon Sep 17 00:00:00 2001
From: Dan Callaghan <dcallagh@redhat.com>
Date: Fri, 30 Nov 2012 14:05:04 +1000
Subject: [PATCH] fix tests when run without a tty (fixes #25)
---
blessings/__init__.py | 2 +-
blessings/tests.py | 8 +++++---
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/blessings/__init__.py b/blessings/__init__.py
index 68212c2..e1adbda 100644
--- a/blessings/__init__.py
+++ b/blessings/__init__.py
@@ -448,7 +448,7 @@ class NullCallableString(unicode):
new = unicode.__new__(cls, u'')
return new
- def __call__(self, arg):
+ def __call__(self, arg, *extra_args):
if isinstance(arg, int):
return u''
return arg # TODO: Force even strs in Python 2.x to be unicodes? Nah. How would I know what encoding to use to convert it?
diff --git a/blessings/tests.py b/blessings/tests.py
index a885c65..38eced4 100644
--- a/blessings/tests.py
+++ b/blessings/tests.py
@@ -44,6 +44,8 @@ def test_capability():
"""
t = TestTerminal()
+ if not t.is_a_tty:
+ raise SkipTest
sc = unicode_cap('sc')
eq_(t.save, sc)
eq_(t.save, sc) # Make sure caching doesn't screw it up.
@@ -64,7 +66,7 @@ def test_capability_with_forced_tty():
def test_parametrization():
"""Test parametrizing a capability."""
- eq_(TestTerminal().cup(3, 4), unicode_parm('cup', 3, 4))
+ eq_(TestTerminal(force_styling=True).cup(3, 4), unicode_parm('cup', 3, 4))
def height_and_width():
@@ -143,7 +145,7 @@ def test_mnemonic_colors():
# Avoid testing red, blue, yellow, and cyan, since they might someday
# change depending on terminal type.
- t = TestTerminal()
+ t = TestTerminal(force_styling=True)
eq_(t.white, color(7))
eq_(t.green, color(2)) # Make sure it's different than white.
eq_(t.on_black, on_color(0))
@@ -247,7 +249,7 @@ def test_nice_formatting_errors():
def test_init_descriptor_always_initted():
"""We should be able to get a height and width even on no-tty Terminals."""
t = Terminal(stream=StringIO())
- eq_(type(t.height), int)
+ assert isinstance(t.height, int) or t.height is None
def test_force_styling_none():
--
1.7.11.7