2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
10 SCRIPT_DIR
= os
.path
.abspath(os
.path
.dirname(__file__
))
11 SRC_DIR
= os
.path
.dirname(SCRIPT_DIR
)
13 sys
.path
.append(os
.path
.join(SRC_DIR
, 'third_party', 'pymock'))
20 class TestGetOutputDirectory(unittest
.TestCase
):
21 @mock.patch('os.environ', {})
22 @mock.patch('sys.argv', [__file__
])
23 def testDefaultValue(self
):
24 self
.assertEqual(gyp_chromium
.GetOutputDirectory(), 'out')
26 @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'})
27 @mock.patch('sys.argv', [__file__
])
28 def testEnvironment(self
):
29 self
.assertEqual(gyp_chromium
.GetOutputDirectory(), 'envfoo')
31 @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'})
32 @mock.patch('sys.argv', [__file__
, '-Goutput_dir=cmdfoo'])
33 def testGFlagOverridesEnv(self
):
34 self
.assertEqual(gyp_chromium
.GetOutputDirectory(), 'cmdfoo')
36 @mock.patch('os.environ', {})
37 @mock.patch('sys.argv', [__file__
, '-G', 'output_dir=foo'])
38 def testGFlagWithSpace(self
):
39 self
.assertEqual(gyp_chromium
.GetOutputDirectory(), 'foo')
42 class TestGetGypVars(unittest
.TestCase
):
43 @mock.patch('os.environ', {})
44 def testDefault(self
):
45 self
.assertEqual(gyp_chromium
.GetGypVars([]), {})
47 @mock.patch('os.environ', {})
48 @mock.patch('sys.argv', [__file__
, '-D', 'foo=bar'])
50 self
.assertEqual(gyp_chromium
.GetGypVars([]), {'foo': 'bar'})
52 @mock.patch('os.environ', {})
53 @mock.patch('sys.argv', [__file__
, '-D', 'foo'])
54 def testDFlagsNoValue(self
):
55 self
.assertEqual(gyp_chromium
.GetGypVars([]), {'foo': '1'})
57 @mock.patch('os.environ', {})
58 @mock.patch('sys.argv', [__file__
, '-D', 'foo=bar', '-Dbaz'])
59 def testDFlagMulti(self
):
60 self
.assertEqual(gyp_chromium
.GetGypVars([]), {'foo': 'bar', 'baz': '1'})
63 if __name__
== '__main__':