diff options
Diffstat (limited to 'SCons/DefaultsTests.py')
-rw-r--r-- | SCons/DefaultsTests.py | 56 |
1 files changed, 46 insertions, 10 deletions
diff --git a/SCons/DefaultsTests.py b/SCons/DefaultsTests.py index 7fd62ae8b..b876552ca 100644 --- a/SCons/DefaultsTests.py +++ b/SCons/DefaultsTests.py @@ -27,7 +27,7 @@ import collections import TestCmd -from SCons.Defaults import mkdir_func, _defines +from SCons.Defaults import mkdir_func, _defines, processDefines class DummyEnvironment(collections.UserDict): @@ -90,18 +90,54 @@ class DefaultsTestCase(unittest.TestCase): """ env = DummyEnvironment() - # Neither source or target specified - x = _defines('-D', ['A', 'B', 'C'], 'XYZ', env) - self.assertEqual(x, ['-DAXYZ', '-DBXYZ', '-DCXYZ']) + with self.subTest(): + # Neither source or target specified + x = _defines('-D', ['A', 'B', 'C'], 'XYZ', env) + self.assertEqual(x, ['-DAXYZ', '-DBXYZ', '-DCXYZ']) - # only source specified - y = _defines('-D', ['AA', 'BA', 'CA'], 'XYZA', env, 'XYZ') - self.assertEqual(y, ['-DAAXYZA', '-DBAXYZA', '-DCAXYZA']) + with self.subTest(): + # only source specified + y = _defines('-D', ['AA', 'BA', 'CA'], 'XYZA', env, 'XYZ') + self.assertEqual(y, ['-DAAXYZA', '-DBAXYZA', '-DCAXYZA']) - # source and target specified - z = _defines('-D', ['AAB', 'BAB', 'CAB'], 'XYZAB', env, 'XYZ', 'abc') - self.assertEqual(z,['-DAABXYZAB', '-DBABXYZAB', '-DCABXYZAB']) + with self.subTest(): + # source and target specified + z = _defines('-D', ['AAB', 'BAB', 'CAB'], 'XYZAB', env, 'XYZ', 'abc') + self.assertEqual(z, ['-DAABXYZAB', '-DBABXYZAB', '-DCABXYZAB']) + def test_processDefines(self): + """Verify correct handling in processDefines.""" + env = DummyEnvironment() + + with self.subTest(): + # macro name only + rv = processDefines('name') + self.assertEqual(rv, ['name']) + + with self.subTest(): + # macro with value + rv = processDefines('name=val') + self.assertEqual(rv, ['name=val']) + + with self.subTest(): + # single list + rv = processDefines(['name', 'val']) + self.assertEqual(rv, ['name', 'val']) + + with self.subTest(): + # single tuple + rv = processDefines(('name', 'val')) + self.assertEqual(rv, ['name', 'val']) + + with self.subTest(): + # single dict + rv = processDefines({'foo': None, 'name': 'val'}) + self.assertEqual(rv, ['foo', 'name=val']) + + with self.subTest(): + # compound list + rv = processDefines(['foo', ('name', 'val'), ['name2', 'val2']]) + self.assertEqual(rv, ['foo', 'name=val', 'name2=val2']) if __name__ == "__main__": |