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
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))