vmesel/PyJobs

View on GitHub
pyjobs/core/tests/test_command_feedback.py

Summary

Maintainability
A
40 mins
Test Coverage
from unittest.mock import patch
from pyjobs.core.models import Skill
from django.test import TestCase
from six import StringIO
from pyjobs.core.models import Job
from pyjobs.marketing.models import Messages
from datetime import datetime, timedelta
from pyjobs.core.management.commands.load_skills import *
from django.core.management import call_command
from model_bakery import baker as mommy
import sys


class FeedbackRequestTest(TestCase):
    @patch("pyjobs.marketing.triggers.send_group_notification")
    @patch("pyjobs.marketing.triggers.send_job_to_github_issues")
    @patch("pyjobs.marketing.triggers.post_telegram_channel")
    def setUp(
        self, _mocked_send_group_push, _mock_github, _mocked_post_telegram_channel
    ):
        self.out = StringIO()
        sys.stdout = self.out
        self.job = mommy.make(
            Job, created_at=datetime.now() - timedelta(14), premium=True
        )
        mommy.make(Messages, message_type="feedback")
        self.job.premium_at = datetime.now() - timedelta(14)
        self.job.save()
        call_command("send_feedback_request", stdout=self.out)

    def test_output(self):
        self.assertEqual("True\n", self.out.getvalue())