Esempio n. 1
0
    def test_set_task_state(self):
        self.cache_mock.get.return_value = {"course_id": "date"}
        state = TaskState("task_name", "course_id2")
        state.set_task_state()
        self.cache_mock.set.assert_called_with(key=state.key, value={"course_id": "date", "course_id2": ANY})

        self.cache_mock.get.return_value = None
        state.set_task_state()
        self.cache_mock.set.assert_called_with(key=state.key, value={"course_id2": ANY})
Esempio n. 2
0
    def test_delete_task_state(self):
        self.cache_mock.get.return_value = {"course_id": "date", "course_id2": "date"}
        state = TaskState("task_name", "course_id")
        state.delete_task_state()
        self.assertEquals(self.cache_mock.delete.call_count, 0)

        self.cache_mock.get.return_value = {} 
        state = TaskState("task_name", "course_id")
        state.delete_task_state()
        self.cache_mock.delete.assert_called_once_with(key=state.key)
Esempio n. 3
0
    def test_is_active(self):
        self.cache_mock.get.return_value = {"course_id": "date"}
        state = TaskState("task_name", "course_id")
        result = state.is_active
        self.assertEquals(result, True)
        self.cache_mock.get.assert_called_once_with(key=state.key, default={})

        self.cache_mock.get.return_value = None
        result = state.is_active
        self.assertEquals(result, False)
Esempio n. 4
0
    def handle(self, *args, **options):
        """Handle command options."""
        course_id = options['course_id']
        task_id = options['task_id']

        if course_id is not None:
            try:
                course_id = CourseLocator.from_string(course_id)
            except InvalidKeyError:
                raise CommandError("'{}' is an invalid course_id".format(course_id))
            if not modulestore().get_course(course_id):
                raise CommandError("The specified course does not exist.")

        if len(args) != 1:
            raise CommandError(
                'Required subcommand, update, list, status, revoke or clear_cache.')
        command = args[0]
        task = ProgressReportTask(update_table_task)

        if command == "status":
            if task_id is None:
                raise CommandError('"status" subcommand required task_id.')
            task.show_task_status(task_id)
        elif command == "list":
            task.show_task_list()
        elif command == "revoke":
            if task_id is None:
                raise CommandError('"revoke" subcommand required task_id.')
            task.revoke_task(task_id)
        elif command == "update":
            if course_id:
                task.send_task(course_id.to_deprecated_string())
            else:
                task.send_tasks()
        elif command == "clear_cache":
            if course_id is None:
                raise CommandError('"clear_cache" subcommand required course_id.')
            state = TaskState("pgreport.tasks.update_table_task", course_id)
            state.delete_task_state()
        else:
            raise CommandError('Invalid subcommand.')
Esempio n. 5
0
    def test_delete_task_state(self):
        self.cache_mock.get.return_value = {"course_id": "date", "course_id2": "date"}
        state = TaskState("task_name", "course_id")
        state.delete_task_state()
        self.assertEquals(self.cache_mock.delete.call_count, 0)

        self.cache_mock.get.return_value = {}
        state = TaskState("task_name", "course_id")
        state.delete_task_state()
        self.cache_mock.delete.assert_called_once_with(key=state.key)
Esempio n. 6
0
    def test_set_task_state(self):
        self.cache_mock.get.return_value = {"course_id": "date"}
        state = TaskState("task_name", "course_id2")
        state.set_task_state()
        self.cache_mock.set.assert_called_with(key=state.key, value={
            'course_id': 'date', 'course_id2': ANY})

        self.cache_mock.get.return_value = None
        state.set_task_state()
        self.cache_mock.set.assert_called_with(key=state.key, value={
            'course_id2': ANY})