| #!/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 |
| |
| import gyp_chromium |
| |
| |
| 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() |