예제 #1
0
    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)
예제 #2
0
 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)
예제 #3
0
 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()
예제 #4
0
 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())
예제 #7
0
 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