Example #1
0
 def test_IndexView_get(self):
     req = APIRequestFactory().get(self.url)
     resp = views.IndexView.as_view()(req)
     comments_url = req.build_absolute_uri(reverse('movies:comments-list'))
     movies_url = req.build_absolute_uri(reverse('movies:movies-list'))
     top_url = req.build_absolute_uri(reverse('movies:top'))
     assert comments_url in resp.data.values()
     assert movies_url in resp.data.values()
     assert top_url in resp.data.values()
     assert resp.status_code == 200
Example #2
0
class UpdatedProgramEmailTests(SiteMixin, TestCase):
    """Tests for sending an update"""

    USERNAME = "******"

    def setUp(self):
        super().setUp()
        dump_random_state()
        self.user = UserFactory(username=self.USERNAME)
        self.client.login(username=self.user.username, password=USER_PASSWORD)
        self.program = ProgramFactory(site=self.site)
        self.pathway = PathwayFactory(site=self.site, programs=[self.program])
        self.pc = ProgramCertificateFactory(site=self.site,
                                            program_uuid=self.program.uuid)
        self.pcr = ProgramCertRecordFactory(program=self.program,
                                            user=self.user)
        self.data = {"username": self.USERNAME, "pathway_id": self.pathway.id}
        self.url = reverse("records:share_program",
                           kwargs={"uuid": self.program.uuid.hex})
        self.request = APIRequestFactory().get("/")

        mail.outbox = []

    def test_send_updated_email_when_program_finished(self):
        """
        Test that an additional updated email will be sent
        """
        # Mock sending an email to the partner
        UserCreditPathwayFactory(user=self.user,
                                 pathway=self.pathway,
                                 status=UserCreditPathwayStatus.SENT)
        self.assertEqual(0, len(mail.outbox))

        send_updated_emails_for_program(self.request, self.USERNAME, self.pc)

        # Check that another email was sent
        self.assertEqual(1, len(mail.outbox))
        email = mail.outbox[0]
        record_path = reverse("records:public_programs",
                              kwargs={"uuid": self.pcr.uuid.hex})
        expected_record_link = self.request.build_absolute_uri(record_path)
        expected_csv_link = urllib.parse.urljoin(expected_record_link, "csv")
        self.assertIn(self.program.title + " Updated Credit Request for",
                      email.subject)
        self.assertIn(expected_record_link, email.body)
        self.assertIn(expected_csv_link, email.body)

    def test_no_previous_email_sent(self):
        """
        Test that no additional email is sent if the user hasn't previously sent one
        """
        self.assertEqual(0, len(mail.outbox))

        send_updated_emails_for_program(self.request, self.USERNAME, self.pc)

        # Check that no email was sent
        self.assertEqual(0, len(mail.outbox))