def test_should_fill_deleted_field_in_backup_entity_if_table_not_found_error_during_deletion( self, _): # given table = Table(project_id='example-proj-name', dataset_id='example-dataset-name', table_id='example-table-name', last_checked=datetime.datetime(2017, 2, 1, 16, 30)) table.put() reference = TableReference.from_table_entity(table) backup1 = backup_utils.create_backup(datetime.datetime( 2017, 2, 1, 16, 30), table, table_id="backup1") backup2 = backup_utils.create_backup(datetime.datetime( 2017, 2, 2, 16, 30), table, table_id="backup2") ndb.put_multi([backup1, backup2]) self.policy.get_backups_eligible_for_deletion = Mock( return_value=[backup1, backup2]) # when self.under_test.perform_retention(reference, table.key.urlsafe()) # then self.assertTrue(Backup.get_by_key(backup1.key).deleted is not None) self.assertTrue(Backup.get_by_key(backup2.key).deleted is not None)
def test_should_retrieve_table_using_backup(self): # given table = Table(project_id='example-proj-name', dataset_id='example-dataset-name', table_id='example-table-name', last_checked=datetime(2017, 02, 1, 16, 30)) table.put() backup = Backup(parent=table.key, last_modified=datetime(2017, 02, 1, 16, 30), created=datetime(2017, 02, 1, 16, 30), dataset_id='targetDatasetId', table_id='targetTableId', numBytes=1234) backup.put() # then backup_entity = Backup.get_by_key(backup.key) table_entity = Table.get_table_from_backup(backup_entity) self.assertEqual(table_entity, table)
def test_that_not_deleted_backup_doesnt_have_created_field(self): # given table = Table(project_id='example-proj-name', dataset_id='example-dataset-name', table_id='example-table-name', last_checked=datetime(2017, 02, 1, 16, 30)) backup = Backup(parent=table.key, last_modified=datetime(2017, 02, 1, 16, 30), created=datetime(2017, 02, 1, 16, 30), dataset_id='targetDatasetId', table_id='targetTableId', numBytes=1234) backup.put() # then backup_to_check = Backup.get_by_key(backup.key) self.assertEqual(backup_to_check.deleted, None) self.assertEqual(backup_to_check.created, datetime(2017, 02, 1, 16, 30))
def test_deleting_backup_is_adding_current_timestamp_in_deleted_field( self): # given table = Table(project_id='example-proj-name', dataset_id='example-dataset-name', table_id='example-table-name', last_checked=datetime(2017, 02, 1, 16, 30)) backup = Backup(parent=table.key, last_modified=datetime(2017, 02, 1, 16, 30), created=datetime(2017, 02, 1, 16, 30), dataset_id='targetDatasetId', table_id='targetTableId', numBytes=1234) backup.put() # when Backup.mark_backup_deleted(backup.key) # then deleted_backup = Backup.get_by_key(backup.key) self.assertEqual(deleted_backup.deleted, datetime(2017, 02, 3, 16, 30))