Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Side by Side Diff: chrome/common/extensions/docs/server2/app_yaml_helper_test.py

Issue 14247024: Devserver: allow SubversionFileSystem to be pinned to a specific rev on construction (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env python
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
4 # found in the LICENSE file.
5
6 import unittest
7
8 from app_yaml_helper import AppYamlHelper
9 from file_system import FileNotFoundError
10 from mock_file_system import MockFileSystem
11 from object_store_creator import ObjectStoreCreator
12 from test_file_system import TestFileSystem
13 from test_util import DisableLogging
14
15 _ExtractVersion, _IsGreater, _GenerateAppYaml = (
16 AppYamlHelper.ExtractVersion,
17 AppYamlHelper.IsGreater,
18 AppYamlHelper.GenerateAppYaml)
19
20 class AppYamlHelperTest(unittest.TestCase):
21 def testExtractVersion(self):
22 def run_test(version):
23 self.assertEqual(version, _ExtractVersion(_GenerateAppYaml(version)))
24 run_test('0')
25 run_test('0-0')
26 run_test('0-0-0')
27 run_test('1')
28 run_test('1-0')
29 run_test('1-0-0')
30 run_test('1-0-1')
31 run_test('1-1-0')
32 run_test('1-1-1')
33 run_test('2-0-9')
34 run_test('2-0-12')
35 run_test('2-1')
36 run_test('2-1-0')
37 run_test('2-11-0')
38 run_test('3-1-0')
39 run_test('3-1-3')
40 run_test('3-12-0')
41
42 def testIsGreater(self):
43 def assert_is_greater(lhs, rhs):
44 self.assertTrue(_IsGreater(lhs, rhs), '%s is not > %s' % (lhs, rhs))
45 self.assertFalse(_IsGreater(rhs, lhs),
46 '%s should not be > %s' % (rhs, lhs))
47 assert_is_greater('0-0', '0')
48 assert_is_greater('0-0-0', '0')
49 assert_is_greater('0-0-0', '0-0')
50 assert_is_greater('1', '0')
51 assert_is_greater('1', '0-0')
52 assert_is_greater('1', '0-0-0')
53 assert_is_greater('1-0', '0-0')
54 assert_is_greater('1-0-0-0', '0-0-0')
55 assert_is_greater('2-0-12', '2-0-9')
56 assert_is_greater('2-0-12', '2-0-9-0')
57 assert_is_greater('2-0-12-0', '2-0-9')
58 assert_is_greater('2-0-12-0', '2-0-9-0')
59 assert_is_greater('2-1', '2-0-9')
60 assert_is_greater('2-1', '2-0-12')
61 assert_is_greater('2-1-0', '2-0-9')
62 assert_is_greater('2-1-0', '2-0-12')
63 assert_is_greater('3-1-0', '2-1')
64 assert_is_greater('3-1-0', '2-1-0')
65 assert_is_greater('3-1-0', '2-11-0')
66 assert_is_greater('3-1-3', '3-1-0')
67 assert_is_greater('3-12-0', '3-1-0')
68 assert_is_greater('3-12-0', '3-1-3')
69 assert_is_greater('3-12-0', '3-1-3-0')
70
71 @DisableLogging('warning')
72 def testInstanceMethods(self):
73 test_data = {
74 'server2': {
75 'app.yaml': _GenerateAppYaml('1-0'),
76 'app_yaml_helper.py': 'Copyright notice etc'
77 }
78 }
79
80 updates = []
81
82 file_system_at_head = MockFileSystem(TestFileSystem(test_data))
83
84 def apply_update(update):
85 file_system_at_head.Update(update)
86 updates.append(update)
87
88 assert_true = self.assertTrue
89 class TestDelegate(AppYamlHelper.Delegate):
90 def GetHostFileSystemForRevision(self, revision):
91 assert_true(revision is not None)
92 assert_true(revision >= 0)
93 return MockFileSystem.Create(TestFileSystem(test_data),
94 updates[:revision])
95
96 helper = AppYamlHelper('server2/app.yaml',
97 file_system_at_head,
98 TestDelegate(),
99 ObjectStoreCreator.ForTest(disable_wrappers=False))
100
101 def assert_is_up_to_date(version):
102 self.assertTrue(helper.IsUpToDate(version),
103 '%s is not up to date' % version)
104 self.assertRaises(ValueError,
105 helper.GetFirstRevisionGreaterThan, version)
106
107 self.assertEqual(0, helper.GetFirstRevisionGreaterThan('0-5-0'))
108 assert_is_up_to_date('1-0-0')
109 assert_is_up_to_date('1-5-0')
110
111 # Revision 1.
112 apply_update({'server2': {
113 'app.yaml': _GenerateAppYaml('1-5-0')
114 }})
115
116 self.assertEqual(0, helper.GetFirstRevisionGreaterThan('0-5-0'))
117 self.assertEqual(1, helper.GetFirstRevisionGreaterThan('1-0-0'))
118 assert_is_up_to_date('1-5-0')
119 assert_is_up_to_date('2-5-0')
120
121 # Revision 2.
122 apply_update({'server2': {
123 'app_yaml_helper.py': 'fixed a bug'
124 }})
125
126 self.assertEqual(0, helper.GetFirstRevisionGreaterThan('0-5-0'))
127 self.assertEqual(1, helper.GetFirstRevisionGreaterThan('1-0-0'))
128 assert_is_up_to_date('1-5-0')
129 assert_is_up_to_date('2-5-0')
130
131 # Revision 3.
132 apply_update({'server2': {
133 'app.yaml': _GenerateAppYaml('1-6-0')
134 }})
135
136 self.assertEqual(0, helper.GetFirstRevisionGreaterThan('0-5-0'))
137 self.assertEqual(1, helper.GetFirstRevisionGreaterThan('1-0-0'))
138 self.assertEqual(3, helper.GetFirstRevisionGreaterThan('1-5-0'))
139 assert_is_up_to_date('2-5-0')
140
141 # Revision 4.
142 apply_update({'server2': {
143 'app.yaml': _GenerateAppYaml('1-8-0')
144 }})
145 # Revision 5.
146 apply_update({'server2': {
147 'app.yaml': _GenerateAppYaml('2-0-0')
148 }})
149 # Revision 6.
150 apply_update({'server2': {
151 'app.yaml': _GenerateAppYaml('2-2-0')
152 }})
153 # Revision 7.
154 apply_update({'server2': {
155 'app.yaml': _GenerateAppYaml('2-4-0')
156 }})
157 # Revision 8.
158 apply_update({'server2': {
159 'app.yaml': _GenerateAppYaml('2-6-0')
160 }})
161
162 self.assertEqual(0, helper.GetFirstRevisionGreaterThan('0-5-0'))
163 self.assertEqual(1, helper.GetFirstRevisionGreaterThan('1-0-0'))
164 self.assertEqual(3, helper.GetFirstRevisionGreaterThan('1-5-0'))
165 self.assertEqual(5, helper.GetFirstRevisionGreaterThan('1-8-0'))
166 self.assertEqual(6, helper.GetFirstRevisionGreaterThan('2-0-0'))
167 self.assertEqual(6, helper.GetFirstRevisionGreaterThan('2-1-0'))
168 self.assertEqual(7, helper.GetFirstRevisionGreaterThan('2-2-0'))
169 self.assertEqual(7, helper.GetFirstRevisionGreaterThan('2-3-0'))
170 self.assertEqual(8, helper.GetFirstRevisionGreaterThan('2-4-0'))
171 self.assertEqual(8, helper.GetFirstRevisionGreaterThan('2-5-0'))
172 assert_is_up_to_date('2-6-0')
173 assert_is_up_to_date('2-7-0')
174
175 if __name__ == '__main__':
176 unittest.main()
OLDNEW
« no previous file with comments | « chrome/common/extensions/docs/server2/app_yaml_helper.py ('k') | chrome/common/extensions/docs/server2/appengine_wrappers.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698