Chromium Code Reviews| 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 |