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

Side by Side Diff: scripts/master/unittests/master_utils_test.py

Issue 2454643002: Fix return value of new slave-distribution function (Closed)
Patch Set: Fix Created 4 years, 1 month 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
« no previous file with comments | « scripts/master/master_utils.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2013 The Chromium Authors. All rights reserved. 2 # Copyright 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 """Source file for master_utils testcases.""" 6 """Source file for master_utils testcases."""
7 7
8 8
9 import unittest 9 import unittest
10 10
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 MockSlaveBuilder('s2', {'preferred_builder': 'builder2'}), 89 MockSlaveBuilder('s2', {'preferred_builder': 'builder2'}),
90 MockSlaveBuilder('s3', {'preferred_builder': 'builder3'}), 90 MockSlaveBuilder('s3', {'preferred_builder': 'builder3'}),
91 MockSlaveBuilder('s4', {'preferred_builder': 'builder1'}), 91 MockSlaveBuilder('s4', {'preferred_builder': 'builder1'}),
92 MockSlaveBuilder('s5', {'preferred_builder': 'builder2'}), 92 MockSlaveBuilder('s5', {'preferred_builder': 'builder2'}),
93 MockSlaveBuilder('s6', {'preferred_builder': 'builder3'}), 93 MockSlaveBuilder('s6', {'preferred_builder': 'builder3'}),
94 # Fall-over pool with no preference. 94 # Fall-over pool with no preference.
95 MockSlaveBuilder('s7', {'preferred_builder': None}), 95 MockSlaveBuilder('s7', {'preferred_builder': None}),
96 MockSlaveBuilder('s8', {'preferred_builder': None}), 96 MockSlaveBuilder('s8', {'preferred_builder': None}),
97 ] 97 ]
98 98
99 # Mock random.choice on function return for determinism and to check the 99 def f(builder, slaves):
100 # full choice range. 100 # Call original method for code coverage only.
101 f = lambda builder, slaves: ( 101 master_utils.PreferredBuilderNextSlaveFuncNG()(builder, slaves)
102 set([s.name for s in master_utils.PreferredBuilderNextSlaveFuncNG( 102
103 choice=list)(builder, slaves)])) 103 # Mock random.choice on function return for determinism and to check the
104 # full choice range.
105 mocked_func = master_utils.PreferredBuilderNextSlaveFuncNG(choice=list)
106 return set([s.name for s in mocked_func(builder, slaves)])
104 107
105 self.assertEqual(set(['s1', 's4']), f(builder1, slaves)) 108 self.assertEqual(set(['s1', 's4']), f(builder1, slaves))
106 self.assertEqual(set(['s2', 's5']), f(builder2, slaves)) 109 self.assertEqual(set(['s2', 's5']), f(builder2, slaves))
107 self.assertEqual(set(['s3', 's6']), f(builder3, slaves)) 110 self.assertEqual(set(['s3', 's6']), f(builder3, slaves))
108 111
109 remove_slave(slaves, 's3') 112 remove_slave(slaves, 's3')
110 113
111 # There's still a preferred slave left. 114 # There's still a preferred slave left.
112 self.assertEqual(set(['s6']), f(builder3, slaves)) 115 self.assertEqual(set(['s6']), f(builder3, slaves))
113 116
(...skipping 17 matching lines...) Expand all
131 def testNextSlaveEmptyNG(self): 134 def testNextSlaveEmptyNG(self):
132 builder = MockBuilder('builder') 135 builder = MockBuilder('builder')
133 slaves = [] 136 slaves = []
134 137
135 f = master_utils.PreferredBuilderNextSlaveFuncNG(choice=list) 138 f = master_utils.PreferredBuilderNextSlaveFuncNG(choice=list)
136 139
137 self.assertIsNone(f(builder, slaves)) 140 self.assertIsNone(f(builder, slaves))
138 141
139 if __name__ == '__main__': 142 if __name__ == '__main__':
140 unittest.main() 143 unittest.main()
OLDNEW
« no previous file with comments | « scripts/master/master_utils.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698