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

Side by Side Diff: net/tools/testserver/chromiumsync_test.py

Issue 9460047: sync: remove use of protobuf extensions in protocol to reduce static init overhead. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fred's review Created 8 years, 9 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
« no previous file with comments | « net/tools/testserver/chromiumsync.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 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 """Tests exercising chromiumsync and SyncDataModel.""" 6 """Tests exercising chromiumsync and SyncDataModel."""
7 7
8 import pickle 8 import pickle
9 import unittest 9 import unittest
10 10
11 import autofill_specifics_pb2 11 import autofill_specifics_pb2
12 import bookmark_specifics_pb2 12 import bookmark_specifics_pb2
13 import chromiumsync 13 import chromiumsync
14 import sync_pb2 14 import sync_pb2
15 import theme_specifics_pb2 15 import theme_specifics_pb2
16 16
17 class SyncDataModelTest(unittest.TestCase): 17 class SyncDataModelTest(unittest.TestCase):
18 def setUp(self): 18 def setUp(self):
19 self.model = chromiumsync.SyncDataModel() 19 self.model = chromiumsync.SyncDataModel()
20 20
21 def AddToModel(self, proto): 21 def AddToModel(self, proto):
22 self.model._entries[proto.id_string] = proto 22 self.model._entries[proto.id_string] = proto
23 23
24 def GetChangesFromTimestamp(self, requested_types, timestamp): 24 def GetChangesFromTimestamp(self, requested_types, timestamp):
25 message = sync_pb2.GetUpdatesMessage() 25 message = sync_pb2.GetUpdatesMessage()
26 message.from_timestamp = timestamp 26 message.from_timestamp = timestamp
27 for data_type in requested_types: 27 for data_type in requested_types:
28 message.requested_types.Extensions[ 28 getattr(message.requested_types,
29 chromiumsync.SYNC_TYPE_TO_EXTENSION[data_type]].SetInParent() 29 chromiumsync.SYNC_TYPE_TO_DESCRIPTOR[
30 data_type].name).SetInParent()
30 return self.model.GetChanges( 31 return self.model.GetChanges(
31 chromiumsync.UpdateSieve(message, self.model.migration_history)) 32 chromiumsync.UpdateSieve(message, self.model.migration_history))
32 33
33 def FindMarkerByNumber(self, markers, datatype): 34 def FindMarkerByNumber(self, markers, datatype):
34 """Search a list of progress markers and find the one for a datatype.""" 35 """Search a list of progress markers and find the one for a datatype."""
35 for marker in markers: 36 for marker in markers:
36 if marker.data_type_id == datatype.number: 37 if marker.data_type_id == datatype.number:
37 return marker 38 return marker
38 self.fail('Required marker not found: %s' % datatype.name) 39 self.fail('Required marker not found: %s' % datatype.name)
39 40
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 self.assertTrue(result4.parent_id_string == 292 self.assertTrue(result4.parent_id_string ==
292 result1b.parent_id_string == 293 result1b.parent_id_string ==
293 result5.parent_id_string == 294 result5.parent_id_string ==
294 result2b.id_string) 295 result2b.id_string)
295 self.assertTrue(result4.position_in_parent < 296 self.assertTrue(result4.position_in_parent <
296 result1b.position_in_parent < 297 result1b.position_in_parent <
297 result5.position_in_parent) 298 result5.position_in_parent)
298 299
299 def testUpdateSieve(self): 300 def testUpdateSieve(self):
300 # from_timestamp, legacy mode 301 # from_timestamp, legacy mode
301 autofill = autofill_specifics_pb2.autofill 302 autofill = chromiumsync.SYNC_TYPE_FIELDS['autofill']
302 theme = theme_specifics_pb2.theme 303 theme = chromiumsync.SYNC_TYPE_FIELDS['theme']
303 msg = sync_pb2.GetUpdatesMessage() 304 msg = sync_pb2.GetUpdatesMessage()
304 msg.from_timestamp = 15412 305 msg.from_timestamp = 15412
305 msg.requested_types.Extensions[autofill].SetInParent() 306 msg.requested_types.autofill.SetInParent()
306 msg.requested_types.Extensions[theme].SetInParent() 307 msg.requested_types.theme.SetInParent()
307 308
308 sieve = chromiumsync.UpdateSieve(msg) 309 sieve = chromiumsync.UpdateSieve(msg)
309 self.assertEqual(sieve._state, 310 self.assertEqual(sieve._state,
310 {chromiumsync.TOP_LEVEL: 15412, 311 {chromiumsync.TOP_LEVEL: 15412,
311 chromiumsync.AUTOFILL: 15412, 312 chromiumsync.AUTOFILL: 15412,
312 chromiumsync.THEME: 15412}) 313 chromiumsync.THEME: 15412})
313 314
314 response = sync_pb2.GetUpdatesResponse() 315 response = sync_pb2.GetUpdatesResponse()
315 sieve.SaveProgress(15412, response) 316 sieve.SaveProgress(15412, response)
316 self.assertEqual(0, len(response.new_progress_marker)) 317 self.assertEqual(0, len(response.new_progress_marker))
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 testserver = chromiumsync.TestServer() 442 testserver = chromiumsync.TestServer()
442 http_code, raw_respon = testserver.HandleSetTransientError() 443 http_code, raw_respon = testserver.HandleSetTransientError()
443 self.assertEqual(http_code, 200) 444 self.assertEqual(http_code, 200)
444 try: 445 try:
445 testserver.CheckTransientError() 446 testserver.CheckTransientError()
446 self.fail('Should have raised transient error exception') 447 self.fail('Should have raised transient error exception')
447 except chromiumsync.TransientError: 448 except chromiumsync.TransientError:
448 self.assertTrue(testserver.transient_error) 449 self.assertTrue(testserver.transient_error)
449 450
450 def testUpdateSieveStoreMigration(self): 451 def testUpdateSieveStoreMigration(self):
451 autofill = autofill_specifics_pb2.autofill 452 autofill = chromiumsync.SYNC_TYPE_FIELDS['autofill']
452 theme = theme_specifics_pb2.theme 453 theme = chromiumsync.SYNC_TYPE_FIELDS['theme']
453 migrator = chromiumsync.MigrationHistory() 454 migrator = chromiumsync.MigrationHistory()
454 msg = sync_pb2.GetUpdatesMessage() 455 msg = sync_pb2.GetUpdatesMessage()
455 marker = msg.from_progress_marker.add() 456 marker = msg.from_progress_marker.add()
456 marker.data_type_id = autofill.number 457 marker.data_type_id = autofill.number
457 marker.token = pickle.dumps((15412, 1)) 458 marker.token = pickle.dumps((15412, 1))
458 marker = msg.from_progress_marker.add() 459 marker = msg.from_progress_marker.add()
459 marker.data_type_id = theme.number 460 marker.data_type_id = theme.number
460 marker.token = pickle.dumps((15413, 1)) 461 marker.token = pickle.dumps((15413, 1))
461 sieve = chromiumsync.UpdateSieve(msg, migrator) 462 sieve = chromiumsync.UpdateSieve(msg, migrator)
462 sieve.CheckMigrationState() 463 sieve.CheckMigrationState()
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 marker.token = pickle.dumps((15412, 5)) 557 marker.token = pickle.dumps((15412, 5))
557 marker = msg.from_progress_marker.add() 558 marker = msg.from_progress_marker.add()
558 marker.data_type_id = theme.number 559 marker.data_type_id = theme.number
559 marker.token = pickle.dumps((15413, 4)) 560 marker.token = pickle.dumps((15413, 4))
560 sieve = chromiumsync.UpdateSieve(msg, migrator) 561 sieve = chromiumsync.UpdateSieve(msg, migrator)
561 sieve.CheckMigrationState() 562 sieve.CheckMigrationState()
562 563
563 564
564 if __name__ == '__main__': 565 if __name__ == '__main__':
565 unittest.main() 566 unittest.main()
OLDNEW
« no previous file with comments | « net/tools/testserver/chromiumsync.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698