- 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:
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):
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 = ()):