| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import test_env # pylint: disable=W0611 | 6 import test_env # pylint: disable=W0611 |
| 7 import coverage |
| 7 import unittest | 8 import unittest |
| 8 import mock # pylint: disable=F0401 | 9 import mock # pylint: disable=F0401 |
| 9 with mock.patch('os.getcwd') as mock_getcwd: | 10 with mock.patch('os.getcwd') as mock_getcwd: |
| 10 mock_getcwd.return_value = '/b/build/slave/fake_slave/build' | 11 mock_getcwd.return_value = '/b/build/slave/fake_slave/build' |
| 11 from slave import recipe_util # pylint: disable=F0401 | 12 from slave import recipe_util # pylint: disable=F0401 |
| 12 | 13 |
| 13 class RecipeUtilGlobalTest(unittest.TestCase): | 14 class RecipeUtilGlobalTest(unittest.TestCase): |
| 14 | 15 |
| 15 def setUp(self): | 16 def setUp(self): |
| 16 self.ru = recipe_util | 17 self.ru = recipe_util |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 self.assertEqual(self.s.ChromiumGitURL('chromium', 'src'), | 66 self.assertEqual(self.s.ChromiumGitURL('chromium', 'src'), |
| 66 'https://chromium.googlesource.com/chromium/src') | 67 'https://chromium.googlesource.com/chromium/src') |
| 67 | 68 |
| 68 def test_mirror_only(self): | 69 def test_mirror_only(self): |
| 69 self.assertEqual(self.s_m.mirror_only(['foobar', 'item']), | 70 self.assertEqual(self.s_m.mirror_only(['foobar', 'item']), |
| 70 ['foobar', 'item']) | 71 ['foobar', 'item']) |
| 71 self.assertEqual(self.s.mirror_only(['foobar', 'item']), []) | 72 self.assertEqual(self.s.mirror_only(['foobar', 'item']), []) |
| 72 | 73 |
| 73 def test_chromium_common_spec(self): | 74 def test_chromium_common_spec(self): |
| 74 self.assertEqual( | 75 self.assertEqual( |
| 75 self.s_m.gclient_common_spec('chromium'), {'solutions': [ | 76 self.ru.GCLIENT_COMMON_SPECS['chromium'](self.s_m), {'solutions': [ |
| 76 { | 77 { |
| 77 'name' : 'src', | 78 'name' : 'src', |
| 78 'url' : 'svn://svn-mirror.golo.chromium.org/chrome/trunk/src', | 79 'url' : 'svn://svn-mirror.golo.chromium.org/chrome/trunk/src', |
| 79 'deps_file' : 'DEPS', | 80 'deps_file' : 'DEPS', |
| 80 'managed' : True, | 81 'managed' : True, |
| 81 'custom_deps': { | 82 'custom_deps': { |
| 82 'src/third_party/WebKit/LayoutTests': None, | 83 'src/third_party/WebKit/LayoutTests': None, |
| 83 'src/webkit/data/layout_tests/LayoutTests': None}, | 84 'src/webkit/data/layout_tests/LayoutTests': None}, |
| 84 'custom_vars': { | 85 'custom_vars': { |
| 85 'googlecode_url': 'svn://svn-mirror.golo.chromium.org/%s', | 86 'googlecode_url': 'svn://svn-mirror.golo.chromium.org/%s', |
| 86 'nacl_trunk': 'http://src.chromium.org/native_client/trunk', | 87 'nacl_trunk': 'http://src.chromium.org/native_client/trunk', |
| 87 'sourceforge_url': 'svn://svn-mirror.golo.chromium.org/%(repo)s', | 88 'sourceforge_url': 'svn://svn-mirror.golo.chromium.org/%(repo)s', |
| 88 'webkit_trunk': | 89 'webkit_trunk': |
| 89 'svn://svn-mirror.golo.chromium.org/blink/trunk'}, | 90 'svn://svn-mirror.golo.chromium.org/blink/trunk'}, |
| 90 'safesync_url': '', | 91 'safesync_url': '', |
| 91 }]}) | 92 }]}) |
| 92 self.assertEqual( | 93 self.assertEqual( |
| 93 self.s.gclient_common_spec('chromium'), {'solutions': [ | 94 self.ru.GCLIENT_COMMON_SPECS['chromium'](self.s), {'solutions': [ |
| 94 { | 95 { |
| 95 'name' : 'src', | 96 'name' : 'src', |
| 96 'url' : 'https://src.chromium.org/chrome/trunk/src', | 97 'url' : 'https://src.chromium.org/chrome/trunk/src', |
| 97 'deps_file' : 'DEPS', | 98 'deps_file' : 'DEPS', |
| 98 'managed' : True, | 99 'managed' : True, |
| 99 'custom_deps': { | 100 'custom_deps': { |
| 100 'src/third_party/WebKit/LayoutTests': None, | 101 'src/third_party/WebKit/LayoutTests': None, |
| 101 'src/webkit/data/layout_tests/LayoutTests': None}, | 102 'src/webkit/data/layout_tests/LayoutTests': None}, |
| 102 'custom_vars': {}, | 103 'custom_vars': {}, |
| 103 'safesync_url': '', | 104 'safesync_url': '', |
| 104 }]}) | 105 }]}) |
| 105 | 106 |
| 106 def test_chromium_tools_build(self): | 107 def test_chromium_tools_build(self): |
| 107 tools_build = {'solutions': [ | 108 tools_build = {'solutions': [ |
| 108 { | 109 { |
| 109 'name': 'build', | 110 'name': 'build', |
| 110 'url': 'https://chromium.googlesource.com/chromium/tools/build.git', | 111 'url': 'https://chromium.googlesource.com/chromium/tools/build.git', |
| 111 'managed' : True, | 112 'managed' : True, |
| 112 'deps_file' : '.DEPS.git', | 113 'deps_file' : '.DEPS.git', |
| 113 }]} | 114 }]} |
| 114 self.assertEqual(self.s_m.gclient_common_spec('tools_build'), | 115 self.assertEqual(self.ru.GCLIENT_COMMON_SPECS['tools_build'](self.s_m), |
| 115 tools_build) | 116 tools_build) |
| 116 self.assertEqual(self.s.gclient_common_spec('tools_build'), | 117 self.assertEqual(self.ru.GCLIENT_COMMON_SPECS['tools_build'](self.s), |
| 117 tools_build) | 118 tools_build) |
| 118 | 119 |
| 119 | 120 |
| 120 class RecipeUtilStepsTest(unittest.TestCase): | 121 class RecipeUtilStepsTest(unittest.TestCase): |
| 121 | 122 |
| 122 def setUp(self): | 123 def setUp(self): |
| 123 self.ru = recipe_util | 124 self.ru = recipe_util |
| 124 self.s = self.ru.Steps({ | 125 self.s = self.ru.Steps({ |
| 125 'issue': '12345', | 126 'issue': '12345', |
| 126 'patchset': '1', | 127 'patchset': '1', |
| 127 'rietveld': 'https://rietveld.org' | 128 'rietveld': 'https://rietveld.org' |
| 128 }) | 129 }) |
| 129 | 130 |
| 130 def test_step(self): | 131 def test_step(self): |
| 131 self.assertEqual( | 132 self.assertEqual( |
| 132 self.s.step('foobar', ['this', 'is', 'command']), | 133 self.s.step('foobar', ['this', 'is', 'command']), |
| 133 {'name': 'foobar', 'cmd': ['this', 'is', 'command']}) | 134 {'name': 'foobar', 'cmd': ['this', 'is', 'command']}) |
| 134 | 135 |
| 135 self.assertRaises(AssertionError, | 136 self.assertRaises(AssertionError, |
| 136 lambda: self.s.step('foobar', 'I am a shell command', shell=True)) | 137 lambda: self.s.step('foobar', 'I am a shell command', shell=True)) |
| 137 | 138 |
| 138 def test_apply_issue_step(self): | 139 def test_apply_issue_step(self): |
| 139 self.assertEquals( | 140 self.assertEquals( |
| 140 self.s.apply_issue_step(), | 141 self.s.apply_issue(), |
| 141 {'name': 'apply_issue', | 142 {'name': 'apply_issue', |
| 142 'cmd': [ | 143 'cmd': [ |
| 143 '/b/depot_tools/apply_issue', | 144 '/b/depot_tools/apply_issue', |
| 144 '-r', '%(CheckoutRootPlaceholder)s', | 145 '-r', '%(CheckoutRootPlaceholder)s', |
| 145 '-i', '12345', | 146 '-i', '12345', |
| 146 '-p', '1', | 147 '-p', '1', |
| 147 '-s', 'https://rietveld.org', | 148 '-s', 'https://rietveld.org', |
| 148 '-e', 'commit-bot@chromium.org']}) | 149 '-e', 'commit-bot@chromium.org']}) |
| 149 self.assertEquals( | 150 self.assertEquals( |
| 150 self.s.apply_issue_step('foobar', 'other'), | 151 self.s.apply_issue('foobar', 'other'), |
| 151 {'name': 'apply_issue', | 152 {'name': 'apply_issue', |
| 152 'cmd': [ | 153 'cmd': [ |
| 153 '/b/depot_tools/apply_issue', | 154 '/b/depot_tools/apply_issue', |
| 154 '-r', '%(CheckoutRootPlaceholder)s/foobar/other', | 155 '-r', '%(CheckoutRootPlaceholder)s/foobar/other', |
| 155 '-i', '12345', | 156 '-i', '12345', |
| 156 '-p', '1', | 157 '-p', '1', |
| 157 '-s', 'https://rietveld.org', | 158 '-s', 'https://rietveld.org', |
| 158 '-e', 'commit-bot@chromium.org']}) | 159 '-e', 'commit-bot@chromium.org']}) |
| 159 | 160 |
| 160 def test_git_step(self): | 161 def test_git(self): |
| 161 self.assertEquals( | 162 self.assertEquals( |
| 162 self.s.git_step('rebase', '--onto', 'master'), | 163 self.s.git('rebase', '--onto', 'master'), |
| 163 { | 164 { |
| 164 'name': 'git rebase', | 165 'name': 'git rebase', |
| 165 'cmd': [ | 166 'cmd': [ |
| 166 'git', '--work-tree', '%(CheckoutRootPlaceholder)s', | 167 'git', '--work-tree', '%(CheckoutRootPlaceholder)s', |
| 167 '--git-dir', '%(CheckoutRootPlaceholder)s/.git', | 168 '--git-dir', '%(CheckoutRootPlaceholder)s/.git', |
| 168 'rebase', '--onto', 'master']}) | 169 'rebase', '--onto', 'master']}) |
| 169 | 170 |
| 170 # git config gets special treatment for the name | 171 # git config gets special treatment for the name |
| 171 self.assertEquals( | 172 self.assertEquals( |
| 172 self.s.git_step('config', 'user.name', 'dudeface'), | 173 self.s.git('config', 'user.name', 'dudeface'), |
| 173 { | 174 { |
| 174 'name': 'git config user.name', | 175 'name': 'git config user.name', |
| 175 'cmd': [ | 176 'cmd': [ |
| 176 'git', '--work-tree', '%(CheckoutRootPlaceholder)s', | 177 'git', '--work-tree', '%(CheckoutRootPlaceholder)s', |
| 177 '--git-dir', '%(CheckoutRootPlaceholder)s/.git', | 178 '--git-dir', '%(CheckoutRootPlaceholder)s/.git', |
| 178 'config', 'user.name', 'dudeface']}) | 179 'config', 'user.name', 'dudeface']}) |
| 179 | 180 |
| 180 | 181 |
| 181 if __name__ == '__main__': | 182 if __name__ == '__main__': |
| 182 unittest.main() | 183 recipe_util_file = recipe_util.__file__ |
| 184 if recipe_util_file[-1] == 'c': |
| 185 recipe_util_file = recipe_util_file[:-1] |
| 186 cov = coverage.coverage(include=recipe_util_file) |
| 187 cov.start() |
| 188 try: |
| 189 unittest.main() |
| 190 finally: |
| 191 cov.stop() |
| 192 cov.report() |
| OLD | NEW |