summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Sig
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-10-29 05:33:03 (GMT)
committerSteven Knight <knight@baldmt.com>2001-10-29 05:33:03 (GMT)
commit15928490b955a3d4ea4966102dc915ed0fdb8526 (patch)
tree4b7b65dd605a53881ad0ee1977cea88db9f31885 /src/engine/SCons/Sig
parent3bce8a9e6e70d61723e4824bd7ba84a7b9547456 (diff)
downloadSCons-15928490b955a3d4ea4966102dc915ed0fdb8526.zip
SCons-15928490b955a3d4ea4966102dc915ed0fdb8526.tar.gz
SCons-15928490b955a3d4ea4966102dc915ed0fdb8526.tar.bz2
Handle SConscript files in subdirectories.
Diffstat (limited to 'src/engine/SCons/Sig')
-rw-r--r--src/engine/SCons/Sig/MD5.py6
-rw-r--r--src/engine/SCons/Sig/MD5Tests.py7
2 files changed, 12 insertions, 1 deletions
diff --git a/src/engine/SCons/Sig/MD5.py b/src/engine/SCons/Sig/MD5.py
index 11ba961..e13669e 100644
--- a/src/engine/SCons/Sig/MD5.py
+++ b/src/engine/SCons/Sig/MD5.py
@@ -78,7 +78,11 @@ def collect(signatures):
def signature(obj):
"""Generate a signature for an object
"""
- return hexdigest(md5.new(obj.get_contents()).digest())
+ try:
+ contents = obj.get_contents()
+ except AttributeError:
+ raise AttributeError, "unable to fetch contents of '%s'" % str(obj)
+ return hexdigest(md5.new(contents).digest())
def to_string(signature):
"""Convert a signature to a string"""
diff --git a/src/engine/SCons/Sig/MD5Tests.py b/src/engine/SCons/Sig/MD5Tests.py
index 641dcb0..f9cf61f 100644
--- a/src/engine/SCons/Sig/MD5Tests.py
+++ b/src/engine/SCons/Sig/MD5Tests.py
@@ -75,6 +75,13 @@ class MD5TestCase(unittest.TestCase):
o1 = my_obj(value = '111')
assert '698d51a19d8a121ce581499d7b701668' == signature(o1)
+ try:
+ signature('string')
+ except AttributeError, e:
+ assert str(e) == "unable to fetch contents of 'string'"
+ else:
+ raise AttributeError, "unexpected get_contents() attribute"
+
def test_to_string(self):
assert '698d51a19d8a121ce581499d7b701668' == to_string('698d51a19d8a121ce581499d7b701668')