OLD | NEW |
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 from copy import deepcopy | 6 from copy import deepcopy |
7 import unittest | 7 import unittest |
8 | 8 |
9 from host_file_system_provider import HostFileSystemProvider | 9 from host_file_system_provider import HostFileSystemProvider |
10 from host_file_system_iterator import HostFileSystemIterator | 10 from host_file_system_iterator import HostFileSystemIterator |
(...skipping 29 matching lines...) Expand all Loading... |
40 host_file_system_provider, | 40 host_file_system_provider, |
41 self._branch_utility) | 41 self._branch_utility) |
42 | 42 |
43 def _GetStableChannelInfo(self,version): | 43 def _GetStableChannelInfo(self,version): |
44 return self._branch_utility.GetStableChannelInfo(version) | 44 return self._branch_utility.GetStableChannelInfo(version) |
45 | 45 |
46 def _GetChannelInfo(self, channel_name): | 46 def _GetChannelInfo(self, channel_name): |
47 return self._branch_utility.GetChannelInfo(channel_name) | 47 return self._branch_utility.GetChannelInfo(channel_name) |
48 | 48 |
49 def testAscending(self): | 49 def testAscending(self): |
50 # Start at |stable| version 5, and move up towards |trunk|. | 50 # Start at |stable| version 5, and move up towards |master|. |
51 # Total: 28 file systems. | 51 # Total: 28 file systems. |
52 iterations, callback = _GetIterationTracker(0) | 52 iterations, callback = _GetIterationTracker(0) |
53 self.assertEqual( | 53 self.assertEqual( |
54 self._iterator.Ascending(self._GetStableChannelInfo(5), callback), | 54 self._iterator.Ascending(self._GetStableChannelInfo(5), callback), |
55 self._GetChannelInfo('trunk')) | 55 self._GetChannelInfo('master')) |
56 self.assertEqual(len(iterations), 28) | 56 self.assertEqual(len(iterations), 28) |
57 | 57 |
58 # Start at |stable| version 5, and move up towards |trunk|. The callback | 58 # Start at |stable| version 5, and move up towards |master|. The callback |
59 # fails at |beta|, so the last successful callback was the latest version | 59 # fails at |beta|, so the last successful callback was the latest version |
60 # of |stable|. Total: 25 file systems. | 60 # of |stable|. Total: 25 file systems. |
61 iterations, callback = _GetIterationTracker( | 61 iterations, callback = _GetIterationTracker( |
62 self._GetChannelInfo('beta').version) | 62 self._GetChannelInfo('beta').version) |
63 self.assertEqual( | 63 self.assertEqual( |
64 self._iterator.Ascending(self._GetStableChannelInfo(5), callback), | 64 self._iterator.Ascending(self._GetStableChannelInfo(5), callback), |
65 self._GetChannelInfo('stable')) | 65 self._GetChannelInfo('stable')) |
66 self.assertEqual(len(iterations), 25) | 66 self.assertEqual(len(iterations), 25) |
67 | 67 |
68 # Start at |stable| version 5, and the callback fails immediately. Since | 68 # Start at |stable| version 5, and the callback fails immediately. Since |
69 # no file systems are successfully processed, expect a return of None. | 69 # no file systems are successfully processed, expect a return of None. |
70 iterations, callback = _GetIterationTracker(5) | 70 iterations, callback = _GetIterationTracker(5) |
71 self.assertEqual( | 71 self.assertEqual( |
72 self._iterator.Ascending(self._GetStableChannelInfo(5), callback), | 72 self._iterator.Ascending(self._GetStableChannelInfo(5), callback), |
73 None) | 73 None) |
74 self.assertEqual([], iterations) | 74 self.assertEqual([], iterations) |
75 | 75 |
76 # Start at |stable| version 5, and the callback fails at version 6. | 76 # Start at |stable| version 5, and the callback fails at version 6. |
77 # The return should represent |stable| version 5. | 77 # The return should represent |stable| version 5. |
78 iterations, callback = _GetIterationTracker(6) | 78 iterations, callback = _GetIterationTracker(6) |
79 self.assertEqual( | 79 self.assertEqual( |
80 self._iterator.Ascending(self._GetStableChannelInfo(5), callback), | 80 self._iterator.Ascending(self._GetStableChannelInfo(5), callback), |
81 self._GetStableChannelInfo(5)) | 81 self._GetStableChannelInfo(5)) |
82 self.assertEqual([self._GetStableChannelInfo(5)], iterations) | 82 self.assertEqual([self._GetStableChannelInfo(5)], iterations) |
83 | 83 |
84 # Start at the latest version of |stable|, and the callback fails at | 84 # Start at the latest version of |stable|, and the callback fails at |
85 # |trunk|. Total: 3 file systems. | 85 # |master|. Total: 3 file systems. |
86 iterations, callback = _GetIterationTracker('trunk') | 86 iterations, callback = _GetIterationTracker('master') |
87 self.assertEqual( | 87 self.assertEqual( |
88 self._iterator.Ascending(self._GetChannelInfo('stable'), callback), | 88 self._iterator.Ascending(self._GetChannelInfo('stable'), callback), |
89 self._GetChannelInfo('dev')) | 89 self._GetChannelInfo('dev')) |
90 self.assertEqual([self._GetChannelInfo('stable'), | 90 self.assertEqual([self._GetChannelInfo('stable'), |
91 self._GetChannelInfo('beta'), | 91 self._GetChannelInfo('beta'), |
92 self._GetChannelInfo('dev')], iterations) | 92 self._GetChannelInfo('dev')], iterations) |
93 | 93 |
94 # Start at |stable| version 10, and the callback fails at |trunk|. | 94 # Start at |stable| version 10, and the callback fails at |master|. |
95 iterations, callback = _GetIterationTracker('trunk') | 95 iterations, callback = _GetIterationTracker('master') |
96 self.assertEqual( | 96 self.assertEqual( |
97 self._iterator.Ascending(self._GetStableChannelInfo(10), callback), | 97 self._iterator.Ascending(self._GetStableChannelInfo(10), callback), |
98 self._GetChannelInfo('dev')) | 98 self._GetChannelInfo('dev')) |
99 self.assertEqual([self._GetStableChannelInfo(10), | 99 self.assertEqual([self._GetStableChannelInfo(10), |
100 self._GetStableChannelInfo(11), | 100 self._GetStableChannelInfo(11), |
101 self._GetStableChannelInfo(12), | 101 self._GetStableChannelInfo(12), |
102 self._GetStableChannelInfo(13), | 102 self._GetStableChannelInfo(13), |
103 self._GetStableChannelInfo(14), | 103 self._GetStableChannelInfo(14), |
104 self._GetStableChannelInfo(15), | 104 self._GetStableChannelInfo(15), |
105 self._GetStableChannelInfo(16), | 105 self._GetStableChannelInfo(16), |
106 self._GetStableChannelInfo(17), | 106 self._GetStableChannelInfo(17), |
107 self._GetStableChannelInfo(18), | 107 self._GetStableChannelInfo(18), |
108 self._GetStableChannelInfo(19), | 108 self._GetStableChannelInfo(19), |
109 self._GetStableChannelInfo(20), | 109 self._GetStableChannelInfo(20), |
110 self._GetStableChannelInfo(21), | 110 self._GetStableChannelInfo(21), |
111 self._GetStableChannelInfo(22), | 111 self._GetStableChannelInfo(22), |
112 self._GetStableChannelInfo(23), | 112 self._GetStableChannelInfo(23), |
113 self._GetStableChannelInfo(24), | 113 self._GetStableChannelInfo(24), |
114 self._GetStableChannelInfo(25), | 114 self._GetStableChannelInfo(25), |
115 self._GetStableChannelInfo(26), | 115 self._GetStableChannelInfo(26), |
116 self._GetStableChannelInfo(27), | 116 self._GetStableChannelInfo(27), |
117 self._GetStableChannelInfo(28), | 117 self._GetStableChannelInfo(28), |
118 self._GetChannelInfo('stable'), | 118 self._GetChannelInfo('stable'), |
119 self._GetChannelInfo('beta'), | 119 self._GetChannelInfo('beta'), |
120 self._GetChannelInfo('dev')], iterations) | 120 self._GetChannelInfo('dev')], iterations) |
121 | 121 |
122 def testDescending(self): | 122 def testDescending(self): |
123 # Start at |trunk|, and the callback fails immediately. No file systems | 123 # Start at |master|, and the callback fails immediately. No file systems |
124 # are successfully processed, so Descending() will return None. | 124 # are successfully processed, so Descending() will return None. |
125 iterations, callback = _GetIterationTracker('trunk') | 125 iterations, callback = _GetIterationTracker('master') |
126 self.assertEqual( | 126 self.assertEqual( |
127 self._iterator.Descending(self._GetChannelInfo('trunk'), callback), | 127 self._iterator.Descending(self._GetChannelInfo('master'), callback), |
128 None) | 128 None) |
129 self.assertEqual([], iterations) | 129 self.assertEqual([], iterations) |
130 | 130 |
131 # Start at |trunk|, and the callback fails at |dev|. Last good iteration | 131 # Start at |master|, and the callback fails at |dev|. Last good iteration |
132 # should be |trunk|. | 132 # should be |master|. |
133 iterations, callback = _GetIterationTracker( | 133 iterations, callback = _GetIterationTracker( |
134 self._GetChannelInfo('dev').version) | 134 self._GetChannelInfo('dev').version) |
135 self.assertEqual( | 135 self.assertEqual( |
136 self._iterator.Descending(self._GetChannelInfo('trunk'), callback), | 136 self._iterator.Descending(self._GetChannelInfo('master'), callback), |
137 self._GetChannelInfo('trunk')) | 137 self._GetChannelInfo('master')) |
138 self.assertEqual([self._GetChannelInfo('trunk')], iterations) | 138 self.assertEqual([self._GetChannelInfo('master')], iterations) |
139 | 139 |
140 # Start at |trunk|, and then move from |dev| down to |stable| at version 5. | 140 # Start at |master|, and then move from |dev| down to |stable| at version 5. |
141 # Total: 28 file systems. | 141 # Total: 28 file systems. |
142 iterations, callback = _GetIterationTracker(0) | 142 iterations, callback = _GetIterationTracker(0) |
143 self.assertEqual( | 143 self.assertEqual( |
144 self._iterator.Descending(self._GetChannelInfo('trunk'), callback), | 144 self._iterator.Descending(self._GetChannelInfo('master'), callback), |
145 self._GetStableChannelInfo(5)) | 145 self._GetStableChannelInfo(5)) |
146 self.assertEqual(len(iterations), 28) | 146 self.assertEqual(len(iterations), 28) |
147 | 147 |
148 # Start at the latest version of |stable|, and move down to |stable| at | 148 # Start at the latest version of |stable|, and move down to |stable| at |
149 # version 5. Total: 25 file systems. | 149 # version 5. Total: 25 file systems. |
150 iterations, callback = _GetIterationTracker(0) | 150 iterations, callback = _GetIterationTracker(0) |
151 self.assertEqual( | 151 self.assertEqual( |
152 self._iterator.Descending(self._GetChannelInfo('stable'), callback), | 152 self._iterator.Descending(self._GetChannelInfo('stable'), callback), |
153 self._GetStableChannelInfo(5)) | 153 self._GetStableChannelInfo(5)) |
154 self.assertEqual(len(iterations), 25) | 154 self.assertEqual(len(iterations), 25) |
(...skipping 22 matching lines...) Expand all Loading... |
177 self._GetStableChannelInfo(16), | 177 self._GetStableChannelInfo(16), |
178 self._GetStableChannelInfo(15), | 178 self._GetStableChannelInfo(15), |
179 self._GetStableChannelInfo(14), | 179 self._GetStableChannelInfo(14), |
180 self._GetStableChannelInfo(13), | 180 self._GetStableChannelInfo(13), |
181 self._GetStableChannelInfo(12), | 181 self._GetStableChannelInfo(12), |
182 self._GetStableChannelInfo(11)], iterations) | 182 self._GetStableChannelInfo(11)], iterations) |
183 | 183 |
184 | 184 |
185 if __name__ == '__main__': | 185 if __name__ == '__main__': |
186 unittest.main() | 186 unittest.main() |
OLD | NEW |