def test_migration_job_skips_deleted_collection(self): """Tests that the collection migration job skips deleted collection and does not attempt to migrate. """ collection = collection_domain.Collection.create_default_collection( self.COLLECTION_ID, 'A title', 'A Category', 'An Objective') collection_services.save_new_collection(self.albert_id, collection) # Note: This creates a summary based on the upgraded model (which is # fine). A summary is needed to delete the collection. collection_services.create_collection_summary(self.COLLECTION_ID, None) # Delete the exploration before migration occurs. collection_services.delete_collection(self.albert_id, self.COLLECTION_ID) # Ensure the exploration is deleted. with self.assertRaisesRegexp(Exception, 'Entity .* not found'): collection_services.get_collection_by_id(self.COLLECTION_ID) # Start migration job on sample collection. job_id = (collection_jobs_one_off.CollectionMigrationJob.create_new()) collection_jobs_one_off.CollectionMigrationJob.enqueue(job_id) # This running without errors indicates the deleted collection is # being ignored. self.process_and_flush_pending_tasks() # Ensure the exploration is still deleted. with self.assertRaisesRegexp(Exception, 'Entity .* not found'): collection_services.get_collection_by_id(self.COLLECTION_ID)
def test_migration_job_skips_deleted_collection(self): """Tests that the collection migration job skips deleted collection and does not attempt to migrate. """ collection = collection_domain.Collection.create_default_collection( self.COLLECTION_ID, 'A title', 'A Category', 'An Objective') collection_services.save_new_collection(self.albert_id, collection) # Note: This creates a summary based on the upgraded model (which is # fine). A summary is needed to delete the collection. collection_services.create_collection_summary( self.COLLECTION_ID, None) # Delete the exploration before migration occurs. collection_services.delete_collection( self.albert_id, self.COLLECTION_ID) # Ensure the exploration is deleted. with self.assertRaisesRegexp(Exception, 'Entity .* not found'): collection_services.get_collection_by_id(self.COLLECTION_ID) # Start migration job on sample collection. job_id = ( collection_jobs_one_off.CollectionMigrationJob.create_new()) collection_jobs_one_off.CollectionMigrationJob.enqueue(job_id) # This running without errors indicates the deleted collection is # being ignored. self.process_and_flush_pending_tasks() # Ensure the exploration is still deleted. with self.assertRaisesRegexp(Exception, 'Entity .* not found'): collection_services.get_collection_by_id(self.COLLECTION_ID)
def test_migration_job_skips_deleted_collection(self): """Tests that the collection migration job skips deleted collection and does not attempt to migrate. """ collection = collection_domain.Collection.create_default_collection( self.COLLECTION_ID, title='A title', category='A Category', objective='An Objective') collection_services.save_new_collection(self.albert_id, collection) # Note: This creates a summary based on the upgraded model (which is # fine). A summary is needed to delete the collection. collection_services.create_collection_summary(self.COLLECTION_ID, None) # Delete the exploration before migration occurs. collection_services.delete_collection(self.albert_id, self.COLLECTION_ID) # Ensure the exploration is deleted. with self.assertRaisesRegexp(Exception, 'Entity .* not found'): collection_services.get_collection_by_id(self.COLLECTION_ID) # Start migration job on sample collection. job_id = ( collection_jobs_one_off.CollectionMigrationOneOffJob.create_new()) collection_jobs_one_off.CollectionMigrationOneOffJob.enqueue(job_id) # This running without errors indicates the deleted collection is # being ignored. self.process_and_flush_pending_tasks() # Ensure the exploration is still deleted. with self.assertRaisesRegexp(Exception, 'Entity .* not found'): collection_services.get_collection_by_id(self.COLLECTION_ID) output = collection_jobs_one_off.CollectionMigrationOneOffJob.get_output(job_id) # pylint: disable=line-too-long expected = [[ u'collection_deleted', [u'Encountered 1 deleted collections.'] ]] self.assertEqual(expected, [ast.literal_eval(x) for x in output])