OLD | NEW |
| (Empty) |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 import os | |
6 import sys | |
7 import unittest | |
8 | |
9 _EXPERIMENTAL = os.path.join(os.path.dirname(__file__), os.pardir) | |
10 _CATAPULT = os.path.join(_EXPERIMENTAL, os.pardir) | |
11 | |
12 # TODO(robertocn): Add these to sys.path conditionally. | |
13 sys.path.append(os.path.join(_CATAPULT, 'third_party', 'mock')) | |
14 sys.path.append(_EXPERIMENTAL) | |
15 | |
16 import mock | |
17 | |
18 from bisect_lib import chromium_revisions | |
19 | |
20 | |
21 FIRST_REVISION = '53fc07eb478520a80af6bf8b62be259bb55db0f1' | |
22 LAST_REVISION = 'c89130e28fd01062104e1be7f3a6fc3abbb80ca9' | |
23 | |
24 TEST_DATA_LOCATION = os.path.join(os.path.dirname(__file__), | |
25 'test_data') | |
26 MOCK_INFO_RESPONSE_FILE = open(os.path.join( | |
27 TEST_DATA_LOCATION, 'MOCK_INFO_RESPONSE_FILE')) | |
28 MOCK_RANGE_RESPONSE_FILE = open(os.path.join( | |
29 TEST_DATA_LOCATION, 'MOCK_RANGE_RESPONSE_FILE')) | |
30 | |
31 EXPECTED_INFO = { | |
32 'body': | |
33 'BUG=548160', | |
34 'date': | |
35 'Tue Oct 27 21:26:30 2015', | |
36 'subject': | |
37 '[Extensions] Fix hiding browser actions without the toolbar redesign', | |
38 'email': | |
39 'rdevlin.cronin@chromium.org', | |
40 'author': | |
41 'rdevlin.cronin' | |
42 } | |
43 | |
44 INTERVENING_REVISIONS = [ | |
45 '2e93263dc74f0496100435e1fd7232e9e8323af0', | |
46 '6feaa73a54d0515ad2940709161ca0a5ad91d1f8', | |
47 '3861789af25e2d3502f0fb7080da5785d31308aa', | |
48 '8fcc8af20a3d41b0512e3b1486e4dc7de528a72b', | |
49 'f1c777e3f97a16cc6a3aa922a23602fa59412989', | |
50 'ee261f306c3c66e96339aa1026d62a6d953302fe', | |
51 '7bd1741893bd4e233b5562a6926d7e395d558343', | |
52 '4f81be50501fbc02d7e44df0d56032e5885e19b6', | |
53 '8414732168a8867a5d6bd45eaade68a5820a9e34', | |
54 '01542ac6d0fbec6aa78e33e6c7ec49a582072ea9', | |
55 '66aeb2b7084850d09f3fccc7d7467b57e4da1882', | |
56 '48c1471f1f503246dd66753a4c7588d77282d2df', | |
57 '84f6037e951c21a3b00bd3ddd034f258da6839b5', | |
58 'ebd5f102ee89a4be5c98815c02c444fbf2b6b040', | |
59 '5dbc149bebecea186b693b3d780b6965eeffed0f', | |
60 '22e49fb496d6ffa122c470f6071d47ccb4ccb672', | |
61 '07a6d9854efab6677b880defa924758334cfd47d', | |
62 '32ce3b13924d84004a3e05c35942626cbe93cbbd', | |
63 ] | |
64 | |
65 | |
66 class ChromiumRevisionsTest(unittest.TestCase): | |
67 | |
68 def setUp(self): | |
69 pass | |
70 | |
71 def tearDown(self): | |
72 pass | |
73 | |
74 def testRevisionInfo(self): | |
75 with mock.patch('urllib2.urlopen', mock.MagicMock( | |
76 return_value=MOCK_INFO_RESPONSE_FILE)): | |
77 test_info = chromium_revisions.revision_info(LAST_REVISION) | |
78 for key in EXPECTED_INFO: | |
79 self.assertIn(EXPECTED_INFO[key], test_info[key]) | |
80 | |
81 def testRevisionRange(self): | |
82 with mock.patch('urllib2.urlopen', mock.MagicMock( | |
83 return_value=MOCK_RANGE_RESPONSE_FILE)): | |
84 rev_list = chromium_revisions.revision_range( | |
85 FIRST_REVISION, LAST_REVISION) | |
86 commits_only = [entry['commit'] for entry in rev_list] | |
87 for r in INTERVENING_REVISIONS: | |
88 self.assertIn(r, commits_only) | |
89 self.assertIn(LAST_REVISION, commits_only) | |
90 self.assertEqual(len(INTERVENING_REVISIONS) + 1, | |
91 len(rev_list)) | |
92 | |
93 if __name__ == '__main__': | |
94 unittest.main() | |
95 | |
OLD | NEW |