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