OLD | NEW |
---|---|
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 from google.protobuf import text_format | |
ncarter (slow)
2012/03/01 22:13:05
Debugging cruft; remove these lines.
akalin
2012/03/02 23:56:49
not removed yet?
| |
18 | |
17 class SyncDataModelTest(unittest.TestCase): | 19 class SyncDataModelTest(unittest.TestCase): |
18 def setUp(self): | 20 def setUp(self): |
19 self.model = chromiumsync.SyncDataModel() | 21 self.model = chromiumsync.SyncDataModel() |
20 | 22 |
21 def AddToModel(self, proto): | 23 def AddToModel(self, proto): |
22 self.model._entries[proto.id_string] = proto | 24 self.model._entries[proto.id_string] = proto |
23 | 25 |
24 def GetChangesFromTimestamp(self, requested_types, timestamp): | 26 def GetChangesFromTimestamp(self, requested_types, timestamp): |
25 message = sync_pb2.GetUpdatesMessage() | 27 message = sync_pb2.GetUpdatesMessage() |
26 message.from_timestamp = timestamp | 28 message.from_timestamp = timestamp |
27 for data_type in requested_types: | 29 for data_type in requested_types: |
28 message.requested_types.Extensions[ | 30 getattr(message.requested_types, |
29 chromiumsync.SYNC_TYPE_TO_EXTENSION[data_type]].SetInParent() | 31 chromiumsync.SYNC_TYPE_TO_DESCRIPTOR[ |
32 data_type].name).SetInParent() | |
30 return self.model.GetChanges( | 33 return self.model.GetChanges( |
31 chromiumsync.UpdateSieve(message, self.model.migration_history)) | 34 chromiumsync.UpdateSieve(message, self.model.migration_history)) |
32 | 35 |
33 def FindMarkerByNumber(self, markers, datatype): | 36 def FindMarkerByNumber(self, markers, datatype): |
34 """Search a list of progress markers and find the one for a datatype.""" | 37 """Search a list of progress markers and find the one for a datatype.""" |
35 for marker in markers: | 38 for marker in markers: |
36 if marker.data_type_id == datatype.number: | 39 if marker.data_type_id == datatype.number: |
37 return marker | 40 return marker |
38 self.fail('Required marker not found: %s' % datatype.name) | 41 self.fail('Required marker not found: %s' % datatype.name) |
39 | 42 |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
291 self.assertTrue(result4.parent_id_string == | 294 self.assertTrue(result4.parent_id_string == |
292 result1b.parent_id_string == | 295 result1b.parent_id_string == |
293 result5.parent_id_string == | 296 result5.parent_id_string == |
294 result2b.id_string) | 297 result2b.id_string) |
295 self.assertTrue(result4.position_in_parent < | 298 self.assertTrue(result4.position_in_parent < |
296 result1b.position_in_parent < | 299 result1b.position_in_parent < |
297 result5.position_in_parent) | 300 result5.position_in_parent) |
298 | 301 |
299 def testUpdateSieve(self): | 302 def testUpdateSieve(self): |
300 # from_timestamp, legacy mode | 303 # from_timestamp, legacy mode |
301 autofill = autofill_specifics_pb2.autofill | 304 autofill = chromiumsync.SYNC_TYPE_FIELDS['autofill'] |
302 theme = theme_specifics_pb2.theme | 305 theme = chromiumsync.SYNC_TYPE_FIELDS['theme'] |
303 msg = sync_pb2.GetUpdatesMessage() | 306 msg = sync_pb2.GetUpdatesMessage() |
304 msg.from_timestamp = 15412 | 307 msg.from_timestamp = 15412 |
305 msg.requested_types.Extensions[autofill].SetInParent() | 308 msg.requested_types.autofill.SetInParent() |
306 msg.requested_types.Extensions[theme].SetInParent() | 309 msg.requested_types.theme.SetInParent() |
307 | 310 |
308 sieve = chromiumsync.UpdateSieve(msg) | 311 sieve = chromiumsync.UpdateSieve(msg) |
309 self.assertEqual(sieve._state, | 312 self.assertEqual(sieve._state, |
310 {chromiumsync.TOP_LEVEL: 15412, | 313 {chromiumsync.TOP_LEVEL: 15412, |
311 chromiumsync.AUTOFILL: 15412, | 314 chromiumsync.AUTOFILL: 15412, |
312 chromiumsync.THEME: 15412}) | 315 chromiumsync.THEME: 15412}) |
313 | 316 |
314 response = sync_pb2.GetUpdatesResponse() | 317 response = sync_pb2.GetUpdatesResponse() |
315 sieve.SaveProgress(15412, response) | 318 sieve.SaveProgress(15412, response) |
316 self.assertEqual(0, len(response.new_progress_marker)) | 319 self.assertEqual(0, len(response.new_progress_marker)) |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
441 testserver = chromiumsync.TestServer() | 444 testserver = chromiumsync.TestServer() |
442 http_code, raw_respon = testserver.HandleSetTransientError() | 445 http_code, raw_respon = testserver.HandleSetTransientError() |
443 self.assertEqual(http_code, 200) | 446 self.assertEqual(http_code, 200) |
444 try: | 447 try: |
445 testserver.CheckTransientError() | 448 testserver.CheckTransientError() |
446 self.fail('Should have raised transient error exception') | 449 self.fail('Should have raised transient error exception') |
447 except chromiumsync.TransientError: | 450 except chromiumsync.TransientError: |
448 self.assertTrue(testserver.transient_error) | 451 self.assertTrue(testserver.transient_error) |
449 | 452 |
450 def testUpdateSieveStoreMigration(self): | 453 def testUpdateSieveStoreMigration(self): |
451 autofill = autofill_specifics_pb2.autofill | 454 autofill = chromiumsync.SYNC_TYPE_FIELDS['autofill'] |
452 theme = theme_specifics_pb2.theme | 455 theme = chromiumsync.SYNC_TYPE_FIELDS['theme'] |
453 migrator = chromiumsync.MigrationHistory() | 456 migrator = chromiumsync.MigrationHistory() |
454 msg = sync_pb2.GetUpdatesMessage() | 457 msg = sync_pb2.GetUpdatesMessage() |
455 marker = msg.from_progress_marker.add() | 458 marker = msg.from_progress_marker.add() |
456 marker.data_type_id = autofill.number | 459 marker.data_type_id = autofill.number |
457 marker.token = pickle.dumps((15412, 1)) | 460 marker.token = pickle.dumps((15412, 1)) |
458 marker = msg.from_progress_marker.add() | 461 marker = msg.from_progress_marker.add() |
459 marker.data_type_id = theme.number | 462 marker.data_type_id = theme.number |
460 marker.token = pickle.dumps((15413, 1)) | 463 marker.token = pickle.dumps((15413, 1)) |
461 sieve = chromiumsync.UpdateSieve(msg, migrator) | 464 sieve = chromiumsync.UpdateSieve(msg, migrator) |
462 sieve.CheckMigrationState() | 465 sieve.CheckMigrationState() |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
556 marker.token = pickle.dumps((15412, 5)) | 559 marker.token = pickle.dumps((15412, 5)) |
557 marker = msg.from_progress_marker.add() | 560 marker = msg.from_progress_marker.add() |
558 marker.data_type_id = theme.number | 561 marker.data_type_id = theme.number |
559 marker.token = pickle.dumps((15413, 4)) | 562 marker.token = pickle.dumps((15413, 4)) |
560 sieve = chromiumsync.UpdateSieve(msg, migrator) | 563 sieve = chromiumsync.UpdateSieve(msg, migrator) |
561 sieve.CheckMigrationState() | 564 sieve.CheckMigrationState() |
562 | 565 |
563 | 566 |
564 if __name__ == '__main__': | 567 if __name__ == '__main__': |
565 unittest.main() | 568 unittest.main() |
OLD | NEW |