summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarn? Draug <carandraug+dev@gmail.com>2013-03-02 21:27:24 +0000
committerCarn? Draug <carandraug+dev@gmail.com>2013-03-02 21:27:24 +0000
commit9ab7a260c35b362fbd91255c5ec32e20deb7e28d (patch)
tree90b51b38501d7ca131c4625b3c069eba3d14b385
parent7f7db8f6dc2b2ab0c4975426c367b4e08fa6014c (diff)
downloadscons-9ab7a260c35b362fbd91255c5ec32e20deb7e28d.tar.gz
Do not check for result type in CheckContext.Result, support duck typing
-rw-r--r--src/engine/SCons/SConf.py19
1 files changed, 7 insertions, 12 deletions
diff --git a/src/engine/SCons/SConf.py b/src/engine/SCons/SConf.py
index 584c433a..f3a35454 100644
--- a/src/engine/SCons/SConf.py
+++ b/src/engine/SCons/SConf.py
@@ -35,7 +35,6 @@ import os
import re
import sys
import traceback
-import types
import SCons.Action
import SCons.Builder
@@ -777,20 +776,16 @@ class CheckContext(object):
self.did_show_result = 0
def Result(self, res):
- """Inform about the result of the test. res may be an integer, a
- string, or a boolean. In case of an integer, the written text will be
- 'yes' or 'no'. The result is only displayed when self.did_show_result
- is not set.
+ """Inform about the result of the test. If res is not a string, displays
+ 'yes' or 'no' depending on whether res is evaluated as true or false.
+ The result is only displayed when self.did_show_result is not set.
"""
- if isinstance(res, (int, bool, types.NoneType)):
- if res:
- text = "yes"
- else:
- text = "no"
- elif isinstance(res, str):
+ if isinstance(res, str):
text = res
+ elif res:
+ text = "yes"
else:
- raise TypeError("Expected string, int or bool, got " + str(type(res)))
+ text = "no"
if self.did_show_result == 0:
# Didn't show result yet, do it now.