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 import unittest | 6 import unittest |
7 | 7 |
8 from app_yaml_helper import AppYamlHelper | 8 from app_yaml_helper import AppYamlHelper |
9 from file_system import FileNotFoundError | 9 from file_system import FileNotFoundError |
10 from host_file_system_creator import HostFileSystemCreator | 10 from host_file_system_provider import HostFileSystemProvider |
11 from mock_file_system import MockFileSystem | 11 from mock_file_system import MockFileSystem |
12 from object_store_creator import ObjectStoreCreator | 12 from object_store_creator import ObjectStoreCreator |
13 from test_file_system import TestFileSystem | 13 from test_file_system import TestFileSystem |
14 from test_util import DisableLogging | 14 from test_util import DisableLogging |
15 | 15 |
16 _ExtractVersion, _IsGreater, _GenerateAppYaml = ( | 16 _ExtractVersion, _IsGreater, _GenerateAppYaml = ( |
17 AppYamlHelper.ExtractVersion, | 17 AppYamlHelper.ExtractVersion, |
18 AppYamlHelper.IsGreater, | 18 AppYamlHelper.IsGreater, |
19 AppYamlHelper.GenerateAppYaml) | 19 AppYamlHelper.GenerateAppYaml) |
20 | 20 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 @DisableLogging('warning') | 72 @DisableLogging('warning') |
73 def testInstanceMethods(self): | 73 def testInstanceMethods(self): |
74 test_data = { | 74 test_data = { |
75 'server2': { | 75 'server2': { |
76 'app.yaml': _GenerateAppYaml('1-0'), | 76 'app.yaml': _GenerateAppYaml('1-0'), |
77 'app_yaml_helper.py': 'Copyright notice etc' | 77 'app_yaml_helper.py': 'Copyright notice etc' |
78 } | 78 } |
79 } | 79 } |
80 | 80 |
81 updates = [] | 81 updates = [] |
82 | 82 # Pass a specific file system at head to the HostFileSystemProvider so that |
| 83 # we know it's always going to be backed by a MockFileSystem. The Provider |
| 84 # may decide to wrap it in caching etc. |
83 file_system_at_head = MockFileSystem(TestFileSystem(test_data)) | 85 file_system_at_head = MockFileSystem(TestFileSystem(test_data)) |
84 | 86 |
85 def apply_update(update): | 87 def apply_update(update): |
86 file_system_at_head.Update(update) | 88 file_system_at_head.Update(update) |
87 updates.append(update) | 89 updates.append(update) |
88 | 90 |
89 def constructor(branch, revision=None): | 91 def host_file_system_constructor(branch, revision=None): |
| 92 self.assertEqual('trunk', branch) |
| 93 self.assertTrue(revision is not None) |
90 return MockFileSystem.Create(TestFileSystem(test_data), | 94 return MockFileSystem.Create(TestFileSystem(test_data), |
91 updates[:revision]) | 95 updates[:revision]) |
92 host_file_system_creator = HostFileSystemCreator( | 96 |
93 ObjectStoreCreator.ForTest(), | 97 object_store_creator = ObjectStoreCreator.ForTest() |
94 constructor_for_test=constructor) | 98 host_file_system_provider = HostFileSystemProvider( |
| 99 object_store_creator, |
| 100 default_trunk_instance=file_system_at_head, |
| 101 constructor_for_test=host_file_system_constructor) |
95 helper = AppYamlHelper('server2/app.yaml', | 102 helper = AppYamlHelper('server2/app.yaml', |
96 file_system_at_head, | 103 object_store_creator, |
97 ObjectStoreCreator.ForTest(disable_wrappers=False), | 104 host_file_system_provider) |
98 host_file_system_creator) | |
99 | 105 |
100 def assert_is_up_to_date(version): | 106 def assert_is_up_to_date(version): |
101 self.assertTrue(helper.IsUpToDate(version), | 107 self.assertTrue(helper.IsUpToDate(version), |
102 '%s is not up to date' % version) | 108 '%s is not up to date' % version) |
103 self.assertRaises(ValueError, | 109 self.assertRaises(ValueError, |
104 helper.GetFirstRevisionGreaterThan, version) | 110 helper.GetFirstRevisionGreaterThan, version) |
105 | 111 |
106 self.assertEqual(0, helper.GetFirstRevisionGreaterThan('0-5-0')) | 112 self.assertEqual(0, helper.GetFirstRevisionGreaterThan('0-5-0')) |
107 assert_is_up_to_date('1-0-0') | 113 assert_is_up_to_date('1-0-0') |
108 assert_is_up_to_date('1-5-0') | 114 assert_is_up_to_date('1-5-0') |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 self.assertEqual(6, helper.GetFirstRevisionGreaterThan('2-1-0')) | 172 self.assertEqual(6, helper.GetFirstRevisionGreaterThan('2-1-0')) |
167 self.assertEqual(7, helper.GetFirstRevisionGreaterThan('2-2-0')) | 173 self.assertEqual(7, helper.GetFirstRevisionGreaterThan('2-2-0')) |
168 self.assertEqual(7, helper.GetFirstRevisionGreaterThan('2-3-0')) | 174 self.assertEqual(7, helper.GetFirstRevisionGreaterThan('2-3-0')) |
169 self.assertEqual(8, helper.GetFirstRevisionGreaterThan('2-4-0')) | 175 self.assertEqual(8, helper.GetFirstRevisionGreaterThan('2-4-0')) |
170 self.assertEqual(8, helper.GetFirstRevisionGreaterThan('2-5-0')) | 176 self.assertEqual(8, helper.GetFirstRevisionGreaterThan('2-5-0')) |
171 assert_is_up_to_date('2-6-0') | 177 assert_is_up_to_date('2-6-0') |
172 assert_is_up_to_date('2-7-0') | 178 assert_is_up_to_date('2-7-0') |
173 | 179 |
174 if __name__ == '__main__': | 180 if __name__ == '__main__': |
175 unittest.main() | 181 unittest.main() |
OLD | NEW |