michael@0: import unittest michael@0: michael@0: import pymake.data michael@0: import pymake.functions michael@0: michael@0: class VariableRefTest(unittest.TestCase): michael@0: def test_get_expansions(self): michael@0: e = pymake.data.StringExpansion('FOO', None) michael@0: f = pymake.functions.VariableRef(None, e) michael@0: michael@0: exps = list(f.expansions()) michael@0: self.assertEqual(len(exps), 1) michael@0: michael@0: class GetExpansionsTest(unittest.TestCase): michael@0: def test_get_arguments(self): michael@0: f = pymake.functions.SubstFunction(None) michael@0: michael@0: e1 = pymake.data.StringExpansion('FOO', None) michael@0: e2 = pymake.data.StringExpansion('BAR', None) michael@0: e3 = pymake.data.StringExpansion('BAZ', None) michael@0: michael@0: f.append(e1) michael@0: f.append(e2) michael@0: f.append(e3) michael@0: michael@0: exps = list(f.expansions()) michael@0: self.assertEqual(len(exps), 3) michael@0: michael@0: def test_descend(self): michael@0: f = pymake.functions.StripFunction(None) michael@0: michael@0: e = pymake.data.Expansion(None) michael@0: michael@0: e1 = pymake.data.StringExpansion('FOO', None) michael@0: f1 = pymake.functions.VariableRef(None, e1) michael@0: e.appendfunc(f1) michael@0: michael@0: f2 = pymake.functions.WildcardFunction(None) michael@0: e2 = pymake.data.StringExpansion('foo/*', None) michael@0: f2.append(e2) michael@0: e.appendfunc(f2) michael@0: michael@0: f.append(e) michael@0: michael@0: exps = list(f.expansions()) michael@0: self.assertEqual(len(exps), 1) michael@0: michael@0: exps = list(f.expansions(True)) michael@0: self.assertEqual(len(exps), 3) michael@0: michael@0: self.assertFalse(f.is_filesystem_dependent) michael@0: michael@0: if __name__ == '__main__': michael@0: unittest.main()