当前位置: 首页>>代码示例>>Python>>正文


Python InstructorTask.create方法代码示例

本文整理汇总了Python中lms.djangoapps.instructor_task.models.InstructorTask.create方法的典型用法代码示例。如果您正苦于以下问题:Python InstructorTask.create方法的具体用法?Python InstructorTask.create怎么用?Python InstructorTask.create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在lms.djangoapps.instructor_task.models.InstructorTask的用法示例。


在下文中一共展示了InstructorTask.create方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _reserve_task

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
def _reserve_task(course_id, task_type, task_key, task_input, requester):
    """
    Creates a database entry to indicate that a task is in progress.

    Throws AlreadyRunningError if the task is already in progress.
    Includes the creation of an arbitrary value for task_id, to be
    submitted with the task call to celery.

    Note that there is a chance of a race condition here, when two users
    try to run the same task at almost exactly the same time.  One user
    could be after the check and before the create when the second user
    gets to the check.  At that point, both users are able to run their
    tasks simultaneously.  This is deemed a small enough risk to not
    put in further safeguards.
    """

    if _task_is_running(course_id, task_type, task_key):
        log.warning("Duplicate task found for task_type %s and task_key %s", task_type, task_key)
        error_message = generate_already_running_error_message(task_type)
        raise AlreadyRunningError(error_message)

    try:
        most_recent_id = InstructorTask.objects.latest('id').id
    except InstructorTask.DoesNotExist:
        most_recent_id = "None found"
    finally:
        log.warning(
            "No duplicate tasks found: task_type %s, task_key %s, and most recent task_id = %s",
            task_type,
            task_key,
            most_recent_id
        )

    # Create log entry now, so that future requests will know it's running.
    return InstructorTask.create(course_id, task_type, task_key, task_input, requester)
开发者ID:cmscom,项目名称:edx-platform,代码行数:37,代码来源:api_helper.py

示例2: test_send_email_undefined_subtask

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
 def test_send_email_undefined_subtask(self):
     # test at a lower level, to ensure that the course gets checked down below too.
     entry = InstructorTask.create(self.course.id, "task_type", "task_key", "task_input", self.instructor)
     entry_id = entry.id
     to_list = ['[email protected]']
     global_email_context = {'course_title': 'dummy course'}
     subtask_id = "subtask-id-value"
     subtask_status = SubtaskStatus.create(subtask_id)
     email_id = 1001
     with self.assertRaisesRegexp(DuplicateTaskException, 'unable to find subtasks of instructor task'):
         send_course_email(entry_id, email_id, to_list, global_email_context, subtask_status.to_dict())
开发者ID:edx,项目名称:edx-platform,代码行数:13,代码来源:test_err_handling.py

示例3: test_nonexistent_course

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
 def test_nonexistent_course(self):
     """
     Tests exception when the course in the email doesn't exist
     """
     course_id = CourseLocator("I", "DONT", "EXIST")
     email = CourseEmail(course_id=course_id)
     email.save()
     entry = InstructorTask.create(course_id, "task_type", "task_key", "task_input", self.instructor)
     task_input = {"email_id": email.id}
     # (?i) is a regex for ignore case
     with self.assertRaisesRegexp(ValueError, r"(?i)course not found"):
         perform_delegate_email_batches(entry.id, course_id, task_input, "action_name")
开发者ID:edx,项目名称:edx-platform,代码行数:14,代码来源:test_err_handling.py

示例4: test_send_email_missing_subtask

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
 def test_send_email_missing_subtask(self):
     # test at a lower level, to ensure that the course gets checked down below too.
     entry = InstructorTask.create(self.course.id, "task_type", "task_key", "task_input", self.instructor)
     entry_id = entry.id
     to_list = ['[email protected]']
     global_email_context = {'course_title': 'dummy course'}
     subtask_id = "subtask-id-value"
     initialize_subtask_info(entry, "emailed", 100, [subtask_id])
     different_subtask_id = "bogus-subtask-id-value"
     subtask_status = SubtaskStatus.create(different_subtask_id)
     bogus_email_id = 1001
     with self.assertRaisesRegexp(DuplicateTaskException, 'unable to find status for subtask of instructor task'):
         send_course_email(entry_id, bogus_email_id, to_list, global_email_context, subtask_status.to_dict())
开发者ID:edx,项目名称:edx-platform,代码行数:15,代码来源:test_err_handling.py

示例5: test_send_email_running_subtask

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
 def test_send_email_running_subtask(self):
     # test at a lower level, to ensure that the course gets checked down below too.
     entry = InstructorTask.create(self.course.id, "task_type", "task_key", "task_input", self.instructor)
     entry_id = entry.id
     subtask_id = "subtask-id-value"
     initialize_subtask_info(entry, "emailed", 100, [subtask_id])
     subtask_status = SubtaskStatus.create(subtask_id)
     update_subtask_status(entry_id, subtask_id, subtask_status)
     check_subtask_is_valid(entry_id, subtask_id, subtask_status)
     bogus_email_id = 1001
     to_list = ['[email protected]']
     global_email_context = {'course_title': 'dummy course'}
     with self.assertRaisesRegexp(DuplicateTaskException, 'already being executed'):
         send_course_email(entry_id, bogus_email_id, to_list, global_email_context, subtask_status.to_dict())
开发者ID:edx,项目名称:edx-platform,代码行数:16,代码来源:test_err_handling.py

示例6: test_send_email_undefined_email

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
 def test_send_email_undefined_email(self):
     # test at a lower level, to ensure that the course gets checked down below too.
     entry = InstructorTask.create(self.course.id, "task_type", "task_key", "task_input", self.instructor)
     entry_id = entry.id
     to_list = ['[email protected]']
     global_email_context = {'course_title': 'dummy course'}
     subtask_id = "subtask-id-undefined-email"
     initialize_subtask_info(entry, "emailed", 100, [subtask_id])
     subtask_status = SubtaskStatus.create(subtask_id)
     bogus_email_id = 1001
     with self.assertRaises(CourseEmail.DoesNotExist):
         # we skip the call that updates subtask status, since we've not set up the InstructorTask
         # for the subtask, and it's not important to the test.
         with patch('bulk_email.tasks.update_subtask_status'):
             send_course_email(entry_id, bogus_email_id, to_list, global_email_context, subtask_status.to_dict())
开发者ID:edx,项目名称:edx-platform,代码行数:17,代码来源:test_err_handling.py

示例7: test_send_email_with_locked_instructor_task

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
 def test_send_email_with_locked_instructor_task(self):
     # test at a lower level, to ensure that the course gets checked down below too.
     entry = InstructorTask.create(self.course.id, "task_type", "task_key", "task_input", self.instructor)
     entry_id = entry.id
     subtask_id = "subtask-id-locked-model"
     initialize_subtask_info(entry, "emailed", 100, [subtask_id])
     subtask_status = SubtaskStatus.create(subtask_id)
     bogus_email_id = 1001
     to_list = ['[email protected]']
     global_email_context = {'course_title': 'dummy course'}
     with patch('lms.djangoapps.instructor_task.subtasks.InstructorTask.save') as mock_task_save:
         mock_task_save.side_effect = DatabaseError
         with self.assertRaises(DatabaseError):
             send_course_email(entry_id, bogus_email_id, to_list, global_email_context, subtask_status.to_dict())
         self.assertEquals(mock_task_save.call_count, MAX_DATABASE_LOCK_RETRIES)
开发者ID:edx,项目名称:edx-platform,代码行数:17,代码来源:test_err_handling.py

示例8: test_wrong_course_id_in_email

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
 def test_wrong_course_id_in_email(self):
     """
     Tests exception when the course_id in CourseEmail is not the same as one explicitly passed in.
     """
     email = CourseEmail.create(
         CourseLocator("bogus", "course", "id"),
         self.instructor,
         [SEND_TO_MYSELF],
         "re: subject",
         "dummy body goes here"
     )
     entry = InstructorTask.create(self.course.id, "task_type", "task_key", "task_input", self.instructor)
     task_input = {"email_id": email.id}
     with self.assertRaisesRegexp(ValueError, 'does not match email value'):
         perform_delegate_email_batches(entry.id, self.course.id, task_input, "action_name")
开发者ID:edx,项目名称:edx-platform,代码行数:17,代码来源:test_err_handling.py

示例9: test_nonexistent_email

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
 def test_nonexistent_email(self, mock_log, result):
     """
     Tests retries when the email doesn't exist
     """
     # create an InstructorTask object to pass through
     course_id = self.course.id
     entry = InstructorTask.create(course_id, "task_type", "task_key", "task_input", self.instructor)
     task_input = {"email_id": -1}
     with self.assertRaises(CourseEmail.DoesNotExist):
         perform_delegate_email_batches(entry.id, course_id, task_input, "action_name")
     ((log_str, __, email_id), __) = mock_log.warning.call_args
     self.assertTrue(mock_log.warning.called)
     self.assertIn('Failed to get CourseEmail with id', log_str)
     self.assertEqual(email_id, -1)
     self.assertFalse(result.called)
开发者ID:edx,项目名称:edx-platform,代码行数:17,代码来源:test_err_handling.py

示例10: test_send_email_retried_subtask

# 需要导入模块: from lms.djangoapps.instructor_task.models import InstructorTask [as 别名]
# 或者: from lms.djangoapps.instructor_task.models.InstructorTask import create [as 别名]
 def test_send_email_retried_subtask(self):
     # test at a lower level, to ensure that the course gets checked down below too.
     entry = InstructorTask.create(self.course.id, "task_type", "task_key", "task_input", self.instructor)
     entry_id = entry.id
     subtask_id = "subtask-id-value"
     initialize_subtask_info(entry, "emailed", 100, [subtask_id])
     subtask_status = SubtaskStatus.create(subtask_id, state=RETRY, retried_nomax=2)
     update_subtask_status(entry_id, subtask_id, subtask_status)
     bogus_email_id = 1001
     to_list = ['[email protected]']
     global_email_context = {'course_title': 'dummy course'}
     # try running with a clean subtask:
     new_subtask_status = SubtaskStatus.create(subtask_id)
     with self.assertRaisesRegexp(DuplicateTaskException, 'already retried'):
         send_course_email(entry_id, bogus_email_id, to_list, global_email_context, new_subtask_status.to_dict())
     # try again, with a retried subtask with lower count:
     new_subtask_status = SubtaskStatus.create(subtask_id, state=RETRY, retried_nomax=1)
     with self.assertRaisesRegexp(DuplicateTaskException, 'already retried'):
         send_course_email(entry_id, bogus_email_id, to_list, global_email_context, new_subtask_status.to_dict())
开发者ID:edx,项目名称:edx-platform,代码行数:21,代码来源:test_err_handling.py


注:本文中的lms.djangoapps.instructor_task.models.InstructorTask.create方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。