Esempio n. 1
0
    def delete(self, activity_type, topic_id):
        if activity_type == constants.ACTIVITY_TYPE_LEARN_TOPIC:
            learner_goals_services.remove_topics_from_learn_goal(
                self.user_id, [topic_id])
        else:
            raise self.InvalidInputException('Invalid activityType: %s' %
                                             (activity_type))

        self.render_json(self.values)
    def test_remove_topic_from_learner_goals(self):
        self.assertEqual(self._get_all_topic_ids_to_learn(self.viewer_id), [])

        # Add topic to learner goals.
        learner_goals_services.mark_topic_to_learn(self.viewer_id,
                                                   self.TOPIC_ID_1)
        learner_goals_services.mark_topic_to_learn(self.viewer_id,
                                                   self.TOPIC_ID_2)
        self.assertEqual(self._get_all_topic_ids_to_learn(self.viewer_id),
                         [self.TOPIC_ID_1, self.TOPIC_ID_2])

        # Removing a topic.
        learner_goals_services.remove_topics_from_learn_goal(
            self.viewer_id, [self.TOPIC_ID_1])
        self.assertEqual(self._get_all_topic_ids_to_learn(self.viewer_id),
                         [self.TOPIC_ID_2])

        # Removing the same topic raises error.
        with self.assertRaisesRegexp(
                Exception,
                'The topic id Topic_id_1 is not present in LearnerGoalsModel'):
            learner_goals_services.remove_topics_from_learn_goal(
                self.viewer_id, [self.TOPIC_ID_1])

        # Removing the second topic.
        learner_goals_services.remove_topics_from_learn_goal(
            self.viewer_id, [self.TOPIC_ID_2])
        self.assertEqual(self._get_all_topic_ids_to_learn(self.viewer_id), [])