def test_bundles_with_same_count_but_different_apps_are_excluded(self): other_prebuilt = factories.PrebuiltPDFBundleFactory() not_matching_apps = factories.make_app_ids_for_sf(count=2) other_prebuilt.applications.add(*not_matching_apps) expected_prebuilt = factories.PrebuiltPDFBundleFactory() matching_apps = factories.make_app_ids_for_sf(count=2) expected_prebuilt.applications.add(*matching_apps) result = PDFService.get_prebuilt_pdf_bundle_for_app_id_set( matching_apps) self.assertNotEqual(other_prebuilt, result) self.assertEqual(expected_prebuilt, result)
def test_if_pdf_bundle_exists_for_all_apps(self): prebuilt = factories.PrebuiltPDFBundleFactory() matching_apps = factories.make_app_ids_for_sf() prebuilt.applications.add(*matching_apps) result = PDFService.get_prebuilt_pdf_bundle_for_app_id_set( matching_apps) self.assertEqual(prebuilt, result)
def test_if_unread_set_has_a_match(self, create_bundle, get_unread_apps): apps = factories.make_apps_for_sf() prebuilt = factories.PrebuiltPDFBundleFactory() prebuilt.applications.add(*apps) get_unread_apps.return_value = factories.apps_queryset(apps) result = PDFService.update_pdf_bundle_for_san_francisco() self.assertEqual(result, prebuilt) create_bundle.assert_not_called()
def test_creates_pdf_bundle_if_no_match(self, get_unread_apps): matching_apps = factories.make_apps_for_sf() not_matching_apps = factories.make_apps_for_sf() prebuilt = factories.PrebuiltPDFBundleFactory() prebuilt.applications.add(*matching_apps) all_apps = matching_apps + not_matching_apps get_unread_apps.return_value = factories.apps_queryset(all_apps) result = PDFService.update_pdf_bundle_for_san_francisco() self.assertNotEqual(result, prebuilt) self.assertEqual(set(all_apps), set(result.applications.all()))
def test_invalid_query_params_returns_not_allowed(self, email_alert): prebuilt = intake_factories.PrebuiltPDFBundleFactory() app_ids = intake_factories.make_app_ids_for('sf_pubdef') prebuilt.applications.add(*app_ids) profile = user_accounts_factories.app_reviewer('sf_pubdef') login(self.client, profile) response = self.client.get( query_params.get_url_for_ids(self.view_name, app_ids + ['omg'])) self.assertRedirects(response, reverse('user_accounts-profile')) self.assertEqual(1, email_alert.call_count)
def test_org_user_who_needs_prebuilt_sees_prebuilt_link(self): intake_factories.FillablePDFFactory() prebuilt = intake_factories.PrebuiltPDFBundleFactory() app_ids = intake_factories.make_app_ids_for('sf_pubdef') prebuilt.applications.add(*app_ids) profile = user_accounts_factories.app_reviewer('sf_pubdef') login(self.client, profile) response = self.client.get( query_params.get_url_for_ids(self.view_name, app_ids)) self.assertContains(response, prebuilt.get_absolute_url())
def setUpClass(cls, *args, **kwargs): super().setUpClass(*args, **kwargs) cls.instance = factories.PrebuiltPDFBundleFactory()
def prebuilt_pdf_for_ids(app_ids): prebuilt = intake_factories.PrebuiltPDFBundleFactory() prebuilt.applications.add(*app_ids) return prebuilt