Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(279)

Side by Side Diff: scripts/slave/unittests/recipe_util_test.py

Issue 15270004: Add step generator protocol, remove annotated_checkout, remove script. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Checkout blobs do not need to be generators Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698