def testHasCommitment(self):
        """Tests that has_action works for a commitment in progress."""
        commitment = Commitment(
            title="Test commitment",
            type="commitment",
            name="Test",
            slug="test-commitment",
            description="A commitment!",
            point_value=10,
        )
        commitment.save()

        # Test as an unlock condition.
        self.quest.unlock_conditions = "submitted_action(slug='test-commitment')"
        self.quest.save()
        self.assertTrue(self.quest not in get_quests(self.user),
            "User should not be able to participate in this quest.")

        member = ActionMember(user=self.user, action=commitment)
        member.save()
        self.assertTrue(submitted_action(self.user, slug='test-commitment'),
            "User should have a commitment in progress.")
        self.assertTrue(submitted_some_of(self.user, action_type="commitment"),
            "User should have a commitment in progress.")

        self.assertTrue(self.quest in get_quests(self.user)["available_quests"],
            "User should be able to participate in this quest.")
        self.quest.unlock_conditions = "submitted_some_of(action_type='commitment')"
        self.quest.save()
        self.assertTrue(self.quest in get_quests(self.user)["available_quests"],
            "User should be able to participate in this quest.")

        member.award_date = datetime.datetime.today()
        member.save()
        self.assertTrue(submitted_action(self.user, slug='test-commitment'),
            "User should have a completed commitment.")
        self.assertTrue(submitted_some_of(self.user, action_type="commitment"),
            "User should have a completed commitment.")

        # Test as a completion condition
        self.quest.accept(self.user)
        self.quest.completion_conditions = "not submitted_action(slug='test-commitment')"
        self.quest.save()
        self.assertTrue(self.quest not in possibly_completed_quests(self.user),
            "User should not be able to complete this quest.")

        self.quest.completion_conditions = "not submitted_some_of(action_type='commitment')"
        self.quest.save()
        self.assertTrue(self.quest not in possibly_completed_quests(self.user),
            "User should not be able to complete this quest.")

        self.quest.completion_conditions = "submitted_action(slug='test-commitment')"
        self.quest.save()
        self.assertTrue(self.quest in possibly_completed_quests(self.user),
            "User should be able to complete this quest.")
Beispiel #2
0
 def testAction(self):
     """Tests submitted_action and approved_action predicates."""
     self.assertFalse(submitted_some(self.user, count=1), "Haven't submitted any yet")
     action_member = ActionMember(user=self.user, action=self.activity)
     action_member.save()
     self.assertTrue(submitted_some(self.user, count=1), "Have submitted one.")
     self.assertTrue(submitted_action(self.user, self.activity.slug),
                     "submitted_action should be true")
     self.assertFalse(approved_action(self.user, self.activity.slug),
                      "approved_action should be false")
     self.assertFalse(approved_some(self.user, count=1), "Haven't had it approved yet.")
     action_member.approval_status = 'approved'
     action_member.save()
     self.assertTrue(approved_action(self.user, self.activity.slug),
                     "approved_action should be true")
     self.assertTrue(approved_some(self.user, count=1), "Have had one approved.")
 def testAction(self):
     """Tests submitted_action and approved_action predicates."""
     self.assertFalse(submitted_some(self.user, count=1),
                      "Haven't submitted any yet")
     action_member = ActionMember(user=self.user, action=self.activity)
     action_member.save()
     self.assertTrue(submitted_some(self.user, count=1),
                     "Have submitted one.")
     self.assertTrue(submitted_action(self.user, self.activity.slug),
                     "submitted_action should be true")
     self.assertFalse(approved_action(self.user, self.activity.slug),
                      "approved_action should be false")
     self.assertFalse(approved_some(self.user, count=1),
                      "Haven't had it approved yet.")
     action_member.approval_status = 'approved'
     action_member.save()
     self.assertTrue(approved_action(self.user, self.activity.slug),
                     "approved_action should be true")
     self.assertTrue(approved_some(self.user, count=1),
                     "Have had one approved.")
    def testHasActivity(self):
        """Test that completing an activity works with has_action."""
        activity = Activity(
            type="activity",
            name="Test",
            slug="test-activity",
            title="Test activity",
            description="Variable points!",
            expected_duration=10,
            point_value=10,
            pub_date=datetime.datetime.today(),
            expire_date=datetime.datetime.today() + datetime.timedelta(days=7),
            confirm_type="text",
        )
        activity.save()

        # Test within context of a quest
        self.quest.unlock_conditions = "submitted_action(slug='test-activity')"
        self.quest.save()
        quests = get_quests(self.user)
        self.assertTrue(self.quest not in quests,
            "User should not be able to participate in this quest.")

        member = ActionMember(user=self.user, action=activity, approval_status="pending")
        member.save()
        self.assertTrue(submitted_action(self.user, slug="test-activity"),
            "User should have a pending task.")
        self.assertTrue(submitted_some_of(self.user, action_type="activity"),
            "User should have a pending task.")

        quests = get_quests(self.user)
        self.assertTrue(self.quest in quests["available_quests"],
            "User should be able to participate in this quest.")

        self.quest.unlock_conditions = "submitted_some_of(action_type='activity')"
        self.quest.save()
        quests = get_quests(self.user)
        self.assertTrue(self.quest in quests["available_quests"],
            "User should be able to participate in this quest.")

        member.approval_status = "approved"
        member.save()
        self.assertTrue(submitted_action(self.user, slug='test-activity'),
            "User should have a completed task.")
        self.assertTrue(submitted_some_of(self.user, action_type="activity"),
            "User should have a completed task.")

        # Test as a completion condition.
        self.quest.accept(self.user)
        self.quest.completion_conditions = "not submitted_action(slug='test-activity')"
        self.quest.save()
        completed_quests = possibly_completed_quests(self.user)
        self.assertTrue(self.quest not in completed_quests,
            "User should not be able to complete the quest.")

        self.quest.completion_conditions = "not submitted_some_of(action_type='activity')"
        self.quest.save()
        completed_quests = possibly_completed_quests(self.user)
        self.assertTrue(self.quest not in completed_quests,
            "User should not be able to complete the quest.")

        self.quest.completion_conditions = "submitted_action(slug='test-activity')"
        self.quest.save()
        completed_quests = possibly_completed_quests(self.user)
        self.assertTrue(self.quest in completed_quests, "User should have completed the quest.")
    def testHasCommitment(self):
        """Tests that has_action works for a commitment in progress."""
        commitment = Commitment(
            title="Test commitment",
            type="commitment",
            name="Test",
            slug="test-commitment",
            description="A commitment!",
            point_value=10,
        )
        commitment.save()

        # Test as an unlock condition.
        self.quest.unlock_conditions = "submitted_action(action_slug='test-commitment')"
        self.quest.save()
        self.assertTrue(
            self.quest not in get_quests(self.user),
            "User should not be able to participate in this quest.")

        member = ActionMember(user=self.user, action=commitment)
        member.save()
        self.assertTrue(
            submitted_action(self.user, action_slug='test-commitment'),
            "User should have a commitment in progress.")
        self.assertTrue(
            submitted_some_of_type(self.user, action_type="commitment"),
            "User should have a commitment in progress.")

        self.assertTrue(
            self.quest in get_quests(self.user)["available_quests"],
            "User should be able to participate in this quest.")
        self.quest.unlock_conditions = "submitted_some_of_type(action_type='commitment')"
        self.quest.save()
        self.assertTrue(
            self.quest in get_quests(self.user)["available_quests"],
            "User should be able to participate in this quest.")

        member.award_date = datetime.datetime.today()
        member.save()
        self.assertTrue(
            submitted_action(self.user, action_slug='test-commitment'),
            "User should have a completed commitment.")
        self.assertTrue(
            submitted_some_of_type(self.user, action_type="commitment"),
            "User should have a completed commitment.")

        # Test as a completion condition
        self.quest.accept(self.user)
        self.quest.completion_conditions = "not submitted_action(action_slug='test-commitment')"
        self.quest.save()
        self.assertTrue(self.quest not in possibly_completed_quests(self.user),
                        "User should not be able to complete this quest.")

        self.quest.completion_conditions = "not submitted_some_of_type(action_type='commitment')"
        self.quest.save()
        self.assertTrue(self.quest not in possibly_completed_quests(self.user),
                        "User should not be able to complete this quest.")

        self.quest.completion_conditions = "submitted_action(action_slug='test-commitment')"
        self.quest.save()
        self.assertTrue(self.quest in possibly_completed_quests(self.user),
                        "User should be able to complete this quest.")
    def testHasActivity(self):
        """Test that completing an activity works with has_action."""
        activity = Activity(
            type="activity",
            name="Test",
            slug="test-activity",
            title="Test activity",
            description="Variable points!",
            expected_duration=10,
            point_value=10,
            pub_date=datetime.datetime.today(),
            expire_date=datetime.datetime.today() + datetime.timedelta(days=7),
            confirm_type="text",
        )
        activity.save()

        # Test within context of a quest
        self.quest.unlock_conditions = "submitted_action(action_slug='test-activity')"
        self.quest.save()
        quests = get_quests(self.user)
        self.assertTrue(
            self.quest not in quests,
            "User should not be able to participate in this quest.")

        member = ActionMember(user=self.user,
                              action=activity,
                              approval_status="pending")
        member.save()
        self.assertTrue(
            submitted_action(self.user, action_slug="test-activity"),
            "User should have a pending task.")
        self.assertTrue(
            submitted_some_of_type(self.user, action_type="activity"),
            "User should have a pending task.")

        quests = get_quests(self.user)
        self.assertTrue(self.quest in quests["available_quests"],
                        "User should be able to participate in this quest.")

        self.quest.unlock_conditions = "submitted_some_of_type(action_type='activity')"
        self.quest.save()
        quests = get_quests(self.user)
        self.assertTrue(self.quest in quests["available_quests"],
                        "User should be able to participate in this quest.")

        member.approval_status = "approved"
        member.save()
        self.assertTrue(
            submitted_action(self.user, action_slug='test-activity'),
            "User should have a completed task.")
        self.assertTrue(
            submitted_some_of_type(self.user, action_type="activity"),
            "User should have a completed task.")

        # Test as a completion condition.
        self.quest.accept(self.user)
        self.quest.completion_conditions = "not submitted_action(action_slug='test-activity')"
        self.quest.save()
        completed_quests = possibly_completed_quests(self.user)
        self.assertTrue(self.quest not in completed_quests,
                        "User should not be able to complete the quest.")

        self.quest.completion_conditions = "not submitted_some_of_type(action_type='activity')"
        self.quest.save()
        completed_quests = possibly_completed_quests(self.user)
        self.assertTrue(self.quest not in completed_quests,
                        "User should not be able to complete the quest.")

        self.quest.completion_conditions = "submitted_action(action_slug='test-activity')"
        self.quest.save()
        completed_quests = possibly_completed_quests(self.user)
        self.assertTrue(self.quest in completed_quests,
                        "User should have completed the quest.")