Chromium Code Reviews| Index: build/gyp_chromium_test.py |
| diff --git a/build/gyp_chromium_test.py b/build/gyp_chromium_test.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..0c0e479d1c3132366a7cb49d413ed4b02490d79f |
| --- /dev/null |
| +++ b/build/gyp_chromium_test.py |
| @@ -0,0 +1,66 @@ |
| +#!/usr/bin/env python |
| +# Copyright 2015 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +import os |
| +import sys |
| +import unittest |
| + |
| +SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) |
| +SRC_DIR = os.path.dirname(SCRIPT_DIR) |
| + |
| +sys.path.append(os.path.join(SRC_DIR, 'third_party', 'pymock')) |
| + |
| +import mock |
| + |
| +# TODO(sbc): Make gyp_chromium more testable by putting the code in |
| +# a .py file. |
| +gyp_chromium = __import__('gyp_chromium') |
|
scottmg
2015/02/03 02:09:18
there is a .py because it's required on windows fo
Sam Clegg
2015/02/03 02:10:30
Oh yeah! That is funny/strange. Not importable
|
| + |
| + |
| +class TestGetOutputDirectory(unittest.TestCase): |
| + @mock.patch('os.environ', {}) |
| + @mock.patch('sys.argv', [__file__]) |
| + def testDefaultValue(self): |
| + self.assertEqual(gyp_chromium.GetOutputDirectory(), 'out') |
| + |
| + @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'}) |
| + @mock.patch('sys.argv', [__file__]) |
| + def testEnvironment(self): |
| + self.assertEqual(gyp_chromium.GetOutputDirectory(), 'envfoo') |
| + |
| + @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'}) |
| + @mock.patch('sys.argv', [__file__, '-Goutput_dir=cmdfoo']) |
| + def testGFlagOverridesEnv(self): |
| + self.assertEqual(gyp_chromium.GetOutputDirectory(), 'cmdfoo') |
| + |
| + @mock.patch('os.environ', {}) |
| + @mock.patch('sys.argv', [__file__, '-G', 'output_dir=foo']) |
| + def testGFlagWithSpace(self): |
| + self.assertEqual(gyp_chromium.GetOutputDirectory(), 'foo') |
| + |
| + |
| +class TestGetGypVars(unittest.TestCase): |
| + @mock.patch('os.environ', {}) |
| + def testDefault(self): |
| + self.assertEqual(gyp_chromium.GetGypVars([]), {}) |
| + |
| + @mock.patch('os.environ', {}) |
| + @mock.patch('sys.argv', [__file__, '-D', 'foo=bar']) |
| + def testDFlags(self): |
| + self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': 'bar'}) |
| + |
| + @mock.patch('os.environ', {}) |
| + @mock.patch('sys.argv', [__file__, '-D', 'foo']) |
| + def testDFlagsNoValue(self): |
| + self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': '1'}) |
| + |
| + @mock.patch('os.environ', {}) |
| + @mock.patch('sys.argv', [__file__, '-D', 'foo=bar', '-Dbaz']) |
| + def testDFlagMulti(self): |
| + self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': 'bar', 'baz': '1'}) |
| + |
| + |
| +if __name__ == '__main__': |
| + unittest.main() |