From 07d2524f1b230ffc11d43d3261418a767803e198 Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Sun, 26 Sep 2004 00:38:48 +0000 Subject: Apply Scanner.Scanner args to the Base class initialization correctly. (Kevin Quick) --- src/CHANGES.txt | 3 ++- src/engine/SCons/Scanner/ScannerTests.py | 13 +++++++++++++ src/engine/SCons/Scanner/__init__.py | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index 52bb9e8..c111ffd 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 3c460c2..2115c70 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 f134b2d..f1b85e8 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 = ()): -- cgit v0.12