From: stevenknight Date: Sun, 26 Sep 2004 00:38:48 +0000 (+0000) Subject: Apply Scanner.Scanner args to the Base class initialization correctly. (Kevin Quick) X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=83edff68b7aa2e756b8f9f43f1ef5bddadeed909;p=scons.git Apply Scanner.Scanner args to the Base class initialization correctly. (Kevin Quick) git-svn-id: http://scons.tigris.org/svn/scons/trunk@1104 fdb21ef1-2011-0410-befe-b5e4ea1792b1 --- diff --git a/src/CHANGES.txt b/src/CHANGES.txt index 52bb9e8b..c111ffd7 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -165,7 +165,8 @@ RELEASE 0.97 - XXX - Use the source_scanner from the target Node, not the source node itself. - - Enforce internally that Scanners are only passed Nodes. + - Enforce internally that Scanners are only passed Nodes. Fix how a + Scanner.Selector called its base class initialization. From Christoph Wiedemann: diff --git a/src/engine/SCons/Scanner/ScannerTests.py b/src/engine/SCons/Scanner/ScannerTests.py index 3c460c28..2115c70a 100644 --- a/src/engine/SCons/Scanner/ScannerTests.py +++ b/src/engine/SCons/Scanner/ScannerTests.py @@ -82,6 +82,19 @@ class ScannerTestCase(unittest.TestCase): s = SCons.Scanner.Scanner({}) assert isinstance(s, SCons.Scanner.Selector), s + s = SCons.Scanner.Scanner(func, name='fooscan') + assert str(s) == 'fooscan', str(s) + s = SCons.Scanner.Scanner({}, name='barscan') + assert str(s) == 'barscan', str(s) + + s = SCons.Scanner.Scanner(func, name='fooscan', argument=9) + assert str(s) == 'fooscan', str(s) + assert s.argument == 9, s.argument + s = SCons.Scanner.Scanner({}, name='fooscan', argument=888) + assert str(s) == 'fooscan', str(s) + assert s.argument == 888, s.argument + + class BaseTestCase(unittest.TestCase): def func(self, filename, env, target, *args): diff --git a/src/engine/SCons/Scanner/__init__.py b/src/engine/SCons/Scanner/__init__.py index f134b2d4..f1b85e84 100644 --- a/src/engine/SCons/Scanner/__init__.py +++ b/src/engine/SCons/Scanner/__init__.py @@ -244,7 +244,7 @@ class Selector(Base): scanner_key() (suffix) for a specific Node. """ def __init__(self, dict, *args, **kw): - Base.__init__(self, (None,)+args, kw) + apply(Base.__init__, (self, None,)+args, kw) self.dict = dict def __call__(self, node, env, path = ()):