Ejemplo n.º 1
0
    def test_escalate_questions_cron(self, submit_ticket):
        """Verify the escalate cronjob escalates the right questions."""

        questions_to_escalate = [
            # Questions over 24 hours old without an answer.
            question(
                created=datetime.now() - timedelta(hours=24, minutes=10),
                save=True),
            question(
                created=datetime.now() - timedelta(hours=24, minutes=50),
                save=True),
        ]

        questions_not_to_escalate = [
            # Questions newer than 24 hours without an answer.
            question(save=True),
            question(created=datetime.now() - timedelta(hours=11), save=True),
            question(created=datetime.now() - timedelta(hours=21), save=True),
        ]

        # Question older than 24 hours with a recent answer.
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        answer(created=datetime.now() - timedelta(hours=10), question=q,
               save=True)
        answer(created=datetime.now() - timedelta(hours=1), creator=q.creator,
               question=q, save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours with a recent answer by the asker.
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        answer(
            created=datetime.now() - timedelta(hours=15), creator=q.creator,
            question=q, save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours without an answer already escalated.
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        q.tags.add(config.ESCALATE_TAG_NAME)
        questions_not_to_escalate.append(q)

        # Question with an inactive user.
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        q.creator.is_active = False
        q.creator.save()
        questions_not_to_escalate.append(q)

        # Run the cron job and verify only 3 questions were escalated.
        eq_(len(questions_to_escalate), escalate_questions())
Ejemplo n.º 2
0
    def test_escalate_questions_cron(self, submit_ticket):
        """Verify the escalate cronjob escalates the right questions."""

        questions_to_escalate = [
            # Questions over 24 hours old without an answer.
            question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True),
            question(created=datetime.now() - timedelta(hours=24, minutes=50),
                     save=True),
        ]

        questions_not_to_escalate = [
            # Questions newer than 24 hours without an answer.
            question(save=True),
            question(created=datetime.now() - timedelta(hours=11), save=True),
            question(created=datetime.now() - timedelta(hours=21), save=True),
        ]

        # Question older than 24 hours with a recent answer.
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        answer(created=datetime.now() - timedelta(hours=10),
               question=q,
               save=True)
        answer(created=datetime.now() - timedelta(hours=1),
               creator=q.creator,
               question=q,
               save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours with a recent answer by the asker.
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        answer(created=datetime.now() - timedelta(hours=15),
               creator=q.creator,
               question=q,
               save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours without an answer already escalated.
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        q.tags.add(config.ESCALATE_TAG_NAME)
        questions_not_to_escalate.append(q)

        # Question with an inactive user.
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        q.creator.is_active = False
        q.creator.save()
        questions_not_to_escalate.append(q)

        # Run the cron job and verify only 3 questions were escalated.
        eq_(len(questions_to_escalate), escalate_questions())
Ejemplo n.º 3
0
    def test_escalate_questions_cron(self, submit_ticket):
        """Verify the escalate cronjob escalates the right questions."""

        questions_to_escalate = [
            # Questions over 24 hours old without an answer.
            question(created=datetime.now() - timedelta(hours=25), save=True),
            question(created=datetime.now() - timedelta(hours=36), save=True),
        ]

        questions_not_to_escalate = [
            # Questions newer than 24 hours without an answer.
            question(save=True),
            question(created=datetime.now() - timedelta(hours=11), save=True),
            question(created=datetime.now() - timedelta(hours=21), save=True),
        ]

        # Question older than 24 hours with a recent answer.
        q = question(created=datetime.now() - timedelta(hours=25), save=True)
        answer(created=datetime.now() - timedelta(hours=10), question=q,
               save=True)
        answer(created=datetime.now() - timedelta(hours=1), creator=q.creator,
               question=q, save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours with a recent answer by the asker.
        q = question(created=datetime.now() - timedelta(hours=25), save=True)
        answer(created=datetime.now() - timedelta(hours=15), creator=q.creator,
               question=q, save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours without an answer already escalated.
        q = question(created=datetime.now() - timedelta(hours=36), save=True)
        q.tags.add(config.ESCALATE_TAG_NAME)
        questions_not_to_escalate.append(q)

        # Question with an inactive user.
        q = question(created=datetime.now() - timedelta(hours=36), save=True)
        q.creator.is_active = False
        q.creator.save()
        questions_not_to_escalate.append(q)

        # Run the cron job and verify only 3 questions were escalated.
        eq_(len(questions_to_escalate), escalate_questions())

        # Get all escalated questions, there should be 4 now
        # (one was already tagged before the cron ran).
        escalated = Question.objects.escalated()
        eq_(3, len(escalated))

        # Verify that all the questions to escalated are listed.
        for q in questions_to_escalate:
            assert q in escalated
Ejemplo n.º 4
0
    def test_escalate_questions_cron(self, submit_ticket):
        """Verify the escalate cronjob escalates the right questions."""

        questions_to_escalate = [
            # Questions over 24 hours old without an answer.
            QuestionFactory(created=datetime.now() - timedelta(hours=24, minutes=10)),
            QuestionFactory(created=datetime.now() - timedelta(hours=24, minutes=50)),
        ]

        # Question about Firefox OS
        fxos = ProductFactory(slug='firefox-os')
        q = QuestionFactory(created=datetime.now() - timedelta(hours=24, minutes=10), product=fxos)
        questions_to_escalate.append(q)

        # Questions not to escalate

        # Questions newer than 24 hours without an answer.
        QuestionFactory()
        QuestionFactory(created=datetime.now() - timedelta(hours=11))
        QuestionFactory(created=datetime.now() - timedelta(hours=21))

        # Questions older than 25 hours (The cronjob runs once an hour)
        QuestionFactory(created=datetime.now() - timedelta(hours=26))

        # Question in the correct time range, but not in the default language.
        QuestionFactory(created=datetime.now() - timedelta(hours=24, minutes=10), locale='de')

        # Question older than 24 hours with a recent answer.
        q = QuestionFactory(created=datetime.now() - timedelta(hours=24, minutes=10))
        AnswerFactory(created=datetime.now() - timedelta(hours=10), question=q)
        AnswerFactory(created=datetime.now() - timedelta(hours=1), creator=q.creator, question=q)

        # Question older than 24 hours with a recent answer by the asker.
        q = QuestionFactory(created=datetime.now() - timedelta(hours=24, minutes=10))
        AnswerFactory(created=datetime.now() - timedelta(hours=15), creator=q.creator, question=q)

        # Question older than 24 hours without an answer already escalated.
        q = QuestionFactory(created=datetime.now() - timedelta(hours=24, minutes=10))
        q.tags.add(config.ESCALATE_TAG_NAME)

        # Question with an inactive user.
        q = QuestionFactory(
            creator__is_active=False,
            created=datetime.now() - timedelta(hours=24, minutes=10))

        # Question about Thunderbird, which is one of the products we exclude.
        tb = ProductFactory(slug='thunderbird')
        q = QuestionFactory(created=datetime.now() - timedelta(hours=24, minutes=10), product=tb)

        # Run the cron job and verify only 3 questions were escalated.
        eq_(len(questions_to_escalate), escalate_questions())
Ejemplo n.º 5
0
    def test_escalate_questions_cron(self, submit_ticket):
        """Verify the escalate cronjob escalates the right questions."""

        questions_to_escalate = [
            # Questions over 24 hours old without an answer.
            question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True),
            question(created=datetime.now() - timedelta(hours=24, minutes=50),
                     save=True),
        ]

        # Question about Firefox OS
        fxos = product(slug='firefox-os', save=True)
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        q.products.add(fxos)
        questions_to_escalate.append(q)

        questions_not_to_escalate = [
            # Questions newer than 24 hours without an answer.
            question(save=True),
            question(created=datetime.now() - timedelta(hours=11), save=True),
            question(created=datetime.now() - timedelta(hours=21), save=True),
        ]

        # Question older than 24 hours with a recent answer.
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        answer(created=datetime.now() - timedelta(hours=10),
               question=q,
               save=True)
        answer(created=datetime.now() - timedelta(hours=1),
               creator=q.creator,
               question=q,
               save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours with a recent answer by the asker.
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        answer(created=datetime.now() - timedelta(hours=15),
               creator=q.creator,
               question=q,
               save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours without an answer already escalated.
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        q.tags.add(config.ESCALATE_TAG_NAME)
        questions_not_to_escalate.append(q)

        # Question with an inactive user.
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        q.creator.is_active = False
        q.creator.save()
        questions_not_to_escalate.append(q)

        # Question about Thunderbird, which is one of the products we exclude.
        tb = product(slug='thunderbird', save=True)
        q = question(created=datetime.now() - timedelta(hours=24, minutes=10),
                     save=True)
        q.products.add(tb)
        questions_not_to_escalate.append(q)

        # Run the cron job and verify only 3 questions were escalated.
        eq_(len(questions_to_escalate), escalate_questions())
Ejemplo n.º 6
0
    def test_escalate_questions_cron(self, submit_ticket):
        """Verify the escalate cronjob escalates the right questions."""

        questions_to_escalate = [
            # Questions over 24 hours old without an answer.
            question(
                created=datetime.now() - timedelta(hours=24, minutes=10),
                save=True),
            question(
                created=datetime.now() - timedelta(hours=24, minutes=50),
                save=True),
        ]

        # Question about Firefox OS
        fxos = product(slug='firefox-os', save=True)
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        q.products.add(fxos)
        questions_to_escalate.append(q)

        questions_not_to_escalate = [
            # Questions newer than 24 hours without an answer.
            question(save=True),
            question(created=datetime.now() - timedelta(hours=11), save=True),
            question(created=datetime.now() - timedelta(hours=21), save=True),
        ]

        # Question older than 24 hours with a recent answer.
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        answer(created=datetime.now() - timedelta(hours=10), question=q,
               save=True)
        answer(created=datetime.now() - timedelta(hours=1), creator=q.creator,
               question=q, save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours with a recent answer by the asker.
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        answer(
            created=datetime.now() - timedelta(hours=15), creator=q.creator,
            question=q, save=True)
        questions_not_to_escalate.append(q)

        # Question older than 24 hours without an answer already escalated.
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        q.tags.add(config.ESCALATE_TAG_NAME)
        questions_not_to_escalate.append(q)

        # Question with an inactive user.
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        q.creator.is_active = False
        q.creator.save()
        questions_not_to_escalate.append(q)

        # Question about Thunderbird, which is one of the products we exclude.
        tb = product(slug='thunderbird', save=True)
        q = question(
            created=datetime.now() - timedelta(hours=24, minutes=10),
            save=True)
        q.products.add(tb)
        questions_not_to_escalate.append(q)

        # Run the cron job and verify only 3 questions were escalated.
        eq_(len(questions_to_escalate), escalate_questions())