summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-09-13 22:04:43 (GMT)
committerSteven Knight <knight@baldmt.com>2004-09-13 22:04:43 (GMT)
commit33aa5f7b77dd3492eaf981ce4ad9a2c7e1ca15b1 (patch)
tree28f89f50eaf0a6154ba942b482c6190347ec6e8d /src
parent85a62e89d40cb4b0f53ee13f4758af6251696b2e (diff)
downloadSCons-33aa5f7b77dd3492eaf981ce4ad9a2c7e1ca15b1.zip
SCons-33aa5f7b77dd3492eaf981ce4ad9a2c7e1ca15b1.tar.gz
SCons-33aa5f7b77dd3492eaf981ce4ad9a2c7e1ca15b1.tar.bz2
Fix Action comparison when a Builder has a suffix key of None. (Kevin Quick)
Diffstat (limited to 'src')
-rw-r--r--src/engine/SCons/Action.py2
-rw-r--r--src/engine/SCons/ActionTests.py21
2 files changed, 22 insertions, 1 deletions
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py
index 2cd23f4..63d8c98 100644
--- a/src/engine/SCons/Action.py
+++ b/src/engine/SCons/Action.py
@@ -216,7 +216,7 @@ class ActionBase:
self.presub = presub
def __cmp__(self, other):
- return cmp(self.__dict__, other.__dict__)
+ return cmp(self.__dict__, other)
def print_cmd_line(self, s, target, source, env):
sys.stdout.write(s + "\n")
diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py
index c6201e2..a61571e 100644
--- a/src/engine/SCons/ActionTests.py
+++ b/src/engine/SCons/ActionTests.py
@@ -1583,6 +1583,27 @@ class ActionCompareTestCase(unittest.TestCase):
name = bar.get_name(env)
assert name == 'BAR', name
+ def test_3_dict_names(self):
+ """Test Action/Suffix dicts with get_name.
+
+ Verifies that Action/Suffix dictionaries work correctly,
+ especially two builders that can generate the same suffix,
+ where one of the builders has a suffix dictionary with a None
+ key."""
+
+ foo = SCons.Builder.Builder(action = '$FOO', suffix = '.foo')
+ bar = SCons.Builder.Builder(action = {}, suffix={None:'.bar'})
+ bar.add_action('.cow', "$MOO")
+ dog = SCons.Builder.Builder(suffix = '.bar')
+
+ env = Environment( BUILDERS = {'FOO' : foo,
+ 'BAR' : bar,
+ 'DOG' : dog} )
+
+ assert foo.get_name(env) == 'FOO'
+ assert bar.get_name(env) == 'BAR'
+ assert dog.get_name(env) == 'DOG'
+
if __name__ == "__main__":
suite = unittest.TestSuite()