def testTaskFromFunctionWithFlags(self): """ test creating task from function with flags""" task = QgsTask.fromFunction('test task', run, 20, flags=QgsTask.Flags()) self.assertFalse(task.canCancel()) task2 = QgsTask.fromFunction('test task', run, 20, flags=QgsTask.CanCancel) self.assertTrue(task2.canCancel())
def test_flags(self): """ Test task flags """ thread_safe_alg = QgsApplication.processingRegistry().algorithmById( 'native:buffer') nonthread_safe_alg = QgsApplication.processingRegistry().algorithmById( 'native:setprojectvariable') context = QgsProcessingContext() context.setProject(QgsProject.instance()) feedback = ConsoleFeedBack() task = QgsProcessingAlgRunnerTask(thread_safe_alg, {}, context=context, feedback=feedback) self.assertEqual(task.flags(), QgsTask.CanCancel) task = QgsProcessingAlgRunnerTask(thread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.Flags()) self.assertEqual(task.flags(), QgsTask.Flags()) task = QgsProcessingAlgRunnerTask(thread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.CanCancel) self.assertEqual(task.flags(), QgsTask.CanCancel) task = QgsProcessingAlgRunnerTask(thread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.CancelWithoutPrompt) self.assertEqual(task.flags(), QgsTask.CancelWithoutPrompt) task = QgsProcessingAlgRunnerTask(thread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.CancelWithoutPrompt | QgsTask.CanCancel) self.assertEqual(task.flags(), QgsTask.CancelWithoutPrompt | QgsTask.CanCancel) # alg which can't be canceled task = QgsProcessingAlgRunnerTask(nonthread_safe_alg, {}, context=context, feedback=feedback) self.assertEqual(task.flags(), QgsTask.Flags()) # we clear the CanCancel flag automatically, since the algorithm itself cannot be canceled task = QgsProcessingAlgRunnerTask(nonthread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.CanCancel) self.assertEqual(task.flags(), QgsTask.Flags()) # hidden task task = QgsProcessingAlgRunnerTask(thread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.Hidden) self.assertEqual(task.flags(), QgsTask.Hidden) task = QgsProcessingAlgRunnerTask(thread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.Hidden | QgsTask.CanCancel) self.assertEqual(task.flags(), QgsTask.Hidden | QgsTask.CanCancel) task = QgsProcessingAlgRunnerTask(thread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.Hidden | QgsTask.CanCancel | QgsTask.CancelWithoutPrompt) self.assertEqual( task.flags(), QgsTask.Hidden | QgsTask.CanCancel | QgsTask.CancelWithoutPrompt) task = QgsProcessingAlgRunnerTask(nonthread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.Hidden) self.assertEqual(task.flags(), QgsTask.Hidden) task = QgsProcessingAlgRunnerTask(nonthread_safe_alg, {}, context=context, feedback=feedback, flags=QgsTask.Hidden | QgsTask.CanCancel) self.assertEqual(task.flags(), QgsTask.Hidden)