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 from copy import deepcopy | 7 from copy import deepcopy |
8 | 8 |
9 from schema_util import RemoveNoDocs, DetectInlineableTypes, InlineDocs | 9 from process_schema import ProcessSchema |
| 10 from future import Future |
| 11 from object_store_creator import ObjectStoreCreator |
| 12 from host_file_system_provider import HostFileSystemProvider |
| 13 from compiled_file_system import CompiledFileSystem |
10 | 14 |
| 15 class _FakeReferenceResolver(): |
| 16 def GetRefModel(self, ref, api_list): |
| 17 return None, None |
| 18 |
| 19 class _FakeAPIModels(): |
| 20 def GetNames(self): |
| 21 return [] |
| 22 |
| 23 class _FakeFeaturesBundle(): |
| 24 def GetAPIFeatures(self): |
| 25 return Future(value={}) |
11 | 26 |
12 class SchemaUtilTest(unittest.TestCase): | 27 class SchemaUtilTest(unittest.TestCase): |
13 | |
14 def testRemoveNoDocs(self): | 28 def testRemoveNoDocs(self): |
15 expected_nodoc = [ | 29 expected_nodoc = [ |
16 { | 30 { |
17 'name': 'B', | 31 'name': 'B', |
18 'list': [ | 32 'list': [ |
19 { | 33 { |
20 'name': 'B2' | 34 'name': 'B2' |
21 } | 35 } |
22 ] | 36 ] |
23 }, | 37 }, |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 'name': 'E2' | 113 'name': 'E2' |
100 }, | 114 }, |
101 { | 115 { |
102 'name': 'E3', | 116 'name': 'E3', |
103 'nodoc': True | 117 'nodoc': True |
104 } | 118 } |
105 ] | 119 ] |
106 } | 120 } |
107 ] | 121 ] |
108 | 122 |
109 RemoveNoDocs(nodoc_data) | 123 object_store_creator = ObjectStoreCreator(start_empty=False) |
| 124 host_file_system_provider = HostFileSystemProvider(object_store_creator) |
| 125 process_schema = ProcessSchema(_FakeReferenceResolver(), |
| 126 _FakeAPIModels(), |
| 127 _FakeFeaturesBundle(), |
| 128 CompiledFileSystem.Factory( |
| 129 object_store_creator), |
| 130 host_file_system_provider.GetTrunk(), |
| 131 True) |
| 132 process_schema._RemoveNoDocs(nodoc_data) |
110 self.assertEquals(expected_nodoc, nodoc_data) | 133 self.assertEquals(expected_nodoc, nodoc_data) |
111 | 134 |
112 def testInlineDocs(self): | 135 def testInlineDocs(self): |
113 schema = { | 136 schema = { |
114 'namespace': 'storage', | 137 'namespace': 'storage', |
115 'properties': { | 138 'properties': { |
116 'key2': { | 139 'key2': { |
117 'description': 'second key', | 140 'description': 'second key', |
118 '$ref': 'Key' | 141 '$ref': 'Key' |
119 }, | 142 }, |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 'marker': True, | 185 'marker': True, |
163 'type': 'string' | 186 'type': 'string' |
164 }, | 187 }, |
165 'type': 'array', | 188 'type': 'array', |
166 'id': 'KeyList', | 189 'id': 'KeyList', |
167 'description': 'A list of keys' | 190 'description': 'A list of keys' |
168 } | 191 } |
169 ] | 192 ] |
170 } | 193 } |
171 | 194 |
| 195 object_store_creator = ObjectStoreCreator(start_empty=False) |
| 196 host_file_system_provider = HostFileSystemProvider(object_store_creator) |
| 197 process_schema = ProcessSchema(_FakeReferenceResolver(), |
| 198 _FakeAPIModels(), |
| 199 _FakeFeaturesBundle(), |
| 200 CompiledFileSystem.Factory( |
| 201 object_store_creator), |
| 202 host_file_system_provider.GetTrunk(), |
| 203 False) |
172 inlined_schema = deepcopy(schema) | 204 inlined_schema = deepcopy(schema) |
173 InlineDocs(inlined_schema, False) | 205 process_schema._InlineDocs(inlined_schema) |
174 self.assertEqual(expected_schema, inlined_schema) | 206 self.assertEqual(expected_schema, inlined_schema) |
175 | 207 |
176 def testDetectInline(self): | 208 def testDetectInline(self): |
177 schema = { | 209 schema = { |
178 'types': [ | 210 'types': [ |
179 { | 211 { |
180 'id': 'Key', | 212 'id': 'Key', |
181 'items': { | 213 'items': { |
182 '$ref': 'Value' | 214 '$ref': 'Value' |
183 } | 215 } |
184 }, | 216 }, |
185 { | 217 { |
186 'id': 'Value', | 218 'id': 'Value', |
187 'marker': True | 219 'marker': True |
188 } | 220 } |
189 ] | 221 ] |
190 } | 222 } |
191 | 223 |
192 expected_schema = { | 224 expected_schema = { |
193 'types': [ | 225 'types': [ |
194 { | 226 { |
195 'id': 'Key', | 227 'id': 'Key', |
196 'items': { | 228 'items': { |
197 'marker': True, | 229 'marker': True, |
198 } | 230 } |
199 } | 231 } |
200 ] | 232 ] |
201 } | 233 } |
202 | 234 |
203 DetectInlineableTypes(schema) | 235 object_store_creator = ObjectStoreCreator(start_empty=False) |
204 InlineDocs(schema, False) | 236 host_file_system_provider = HostFileSystemProvider(object_store_creator) |
| 237 process_schema = ProcessSchema(_FakeReferenceResolver(), |
| 238 _FakeAPIModels(), |
| 239 _FakeFeaturesBundle(), |
| 240 CompiledFileSystem.Factory( |
| 241 object_store_creator), |
| 242 host_file_system_provider.GetTrunk(), |
| 243 False) |
| 244 process_schema._DetectInlineableTypes(schema) |
| 245 process_schema._InlineDocs(schema) |
205 self.assertEqual(expected_schema, schema) | 246 self.assertEqual(expected_schema, schema) |
206 | 247 |
207 | 248 |
208 if __name__ == '__main__': | 249 if __name__ == '__main__': |
209 unittest.main() | 250 unittest.main() |
OLD | NEW |