diff options
Diffstat (limited to 'misc')
-rw-r--r-- | misc/ninja_syntax.py | 7 | ||||
-rwxr-xr-x | misc/ninja_test.py | 21 |
2 files changed, 27 insertions, 1 deletions
diff --git a/misc/ninja_syntax.py b/misc/ninja_syntax.py index b73a002..2e487d1 100644 --- a/misc/ninja_syntax.py +++ b/misc/ninja_syntax.py @@ -66,7 +66,12 @@ class Writer(object): ' '.join(all_inputs))) if variables: - for key, val in variables: + if isinstance(variables, dict): + iterator = variables.iteritems() + else: + iterator = iter(variables) + + for key, val in iterator: self.variable(key, val, indent=1) return outputs diff --git a/misc/ninja_test.py b/misc/ninja_test.py index 65dbec6..897de72 100755 --- a/misc/ninja_test.py +++ b/misc/ninja_test.py @@ -111,5 +111,26 @@ foo = a$$ $ ''', self.out.getvalue()) +class TestBuild(unittest.TestCase): + def setUp(self): + self.out = StringIO() + self.n = ninja_syntax.Writer(self.out) + + def test_variables_dict(self): + self.n.build('out', 'cc', 'in', variables={'name': 'value'}) + self.assertEqual('''\ +build out: cc in + name = value +''', + self.out.getvalue()) + + def test_variables_list(self): + self.n.build('out', 'cc', 'in', variables=[('name', 'value')]) + self.assertEqual('''\ +build out: cc in + name = value +''', + self.out.getvalue()) + if __name__ == '__main__': unittest.main() |