| 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 |