| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import unittest |
| |
| from bisect_state import BisectState |
| |
| |
| class BisectStateTest(unittest.TestCase): |
| |
| def testCreatesRevisionsStateAfterAReferenceRevision(self): |
| bisect_state = BisectState('chromium', ['a', 'b', 'c', 'd']) |
| bisect_state.CreateRevisionStatesAfter('webkit', [1, 2, 3], 'chromium', 'b') |
| bisect_state.CreateRevisionStatesAfter('v8', [100, 200], 'webkit', 2) |
| |
| actual_revisions = bisect_state.GetRevisionStates() |
| expected_revisions = [('chromium', 'a'), ('chromium', 'b'), ('webkit', 1), |
| ('webkit', 2), ('v8', 100), ('v8', 200), |
| ('webkit', 3), ('chromium', 'c'), ('chromium', 'd')] |
| self.assertEqual(len(expected_revisions), len(actual_revisions)) |
| for i in xrange(len(actual_revisions)): |
| self.assertEqual(i, actual_revisions[i].index) |
| self.assertEqual(expected_revisions[i][0], actual_revisions[i].depot) |
| self.assertEqual(expected_revisions[i][1], actual_revisions[i].revision) |
| |
| # TODO(sergiyb): More tests for the remaining functions. |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |