示例#1
0
    def test_build_bundled_pdf_with_one_pdf(self, logger, get_parser, slack):
        # set up associated data
        sf_pubdef = auth_models.Organization.objects.get(
            slug=constants.Organizations.SF_PUBDEF)
        sub = SubmissionsService.create_for_organizations(
            [sf_pubdef], answers={})
        fillable = mock.fillable_pdf(organization=sf_pubdef)
        data = b'content'
        filled = models.FilledPDF.create_with_pdf_bytes(
            pdf_bytes=data, submission=sub, original_pdf=fillable)
        bundle = BundlesService.create_bundle_from_submissions(
            organization=sf_pubdef, submissions=[sub], skip_pdf=True)

        # set up mocks
        should_have_a_pdf = Mock(return_value=True)
        get_individual_filled_pdfs = Mock(
            return_value=[filled])
        bundle.should_have_a_pdf = should_have_a_pdf
        bundle.get_individual_filled_pdfs = get_individual_filled_pdfs

        # run method
        BundlesService.build_bundled_pdf_if_necessary(bundle)

        # check results
        get_parser.assert_not_called()
        logger.assert_not_called()
        slack.assert_not_called()
        get_individual_filled_pdfs.assert_called_once_with()
        self.assertEqual(bundle.bundled_pdf.read(), data)
示例#2
0
    def test_build_bundled_pdf_with_one_pdf(self, logger, get_parser, slack):
        # set up associated data
        sf_pubdef = auth_models.Organization.objects.get(
            slug=constants.Organizations.SF_PUBDEF)
        sub = SubmissionsService.create_for_organizations([sf_pubdef],
                                                          answers={})
        fillable = mock.fillable_pdf(organization=sf_pubdef)
        data = b'content'
        filled = models.FilledPDF.create_with_pdf_bytes(pdf_bytes=data,
                                                        submission=sub,
                                                        original_pdf=fillable)
        bundle = BundlesService.create_bundle_from_submissions(
            organization=sf_pubdef, submissions=[sub], skip_pdf=True)

        # set up mocks
        should_have_a_pdf = Mock(return_value=True)
        get_individual_filled_pdfs = Mock(return_value=[filled])
        bundle.should_have_a_pdf = should_have_a_pdf
        bundle.get_individual_filled_pdfs = get_individual_filled_pdfs

        # run method
        BundlesService.build_bundled_pdf_if_necessary(bundle)

        # check results
        get_parser.assert_not_called()
        logger.assert_not_called()
        slack.assert_not_called()
        get_individual_filled_pdfs.assert_called_once_with()
        self.assertEqual(bundle.bundled_pdf.read(), data)
示例#3
0
def build_seed_submissions():
    from intake.services import bundles as BundlesService
    subs = []
    orgs = Organization.objects.filter(is_receiving_agency=True)
    for org in orgs:
        # make 2 submissions to each org
        for i in range(2):
            sub = factories.FormSubmissionWithOrgsFactory.create(
                organizations=[org])
            subs.append(sub)
    # make 1 submission to multiple orgs
    target_orgs = Organization.objects.filter(
        is_receiving_agency=True).exclude(slug__contains='ebclc')
    multi_org_sub = factories.FormSubmissionWithOrgsFactory.create(
        organizations=target_orgs)
    subs.append(multi_org_sub)
    sub_ids = [sub.id for sub in subs]
    # applications = models.Application.objects.filter(
    #     form_submission_id__in=sub_ids)

    applicants = []
    for sub in subs:
        applicants.append(sub.applicant)

    """
    Creating status updates for all applications forces a mock situation
    in which there are 0 unread applications, which limits our test range.
    Working around that by only doing so for the first 2 applications to
    an org.
    """
    for org in orgs:
        updated_application = models.Application.objects.filter(
            organization=org, form_submission_id__in=sub_ids).first()
        factories.StatusUpdateWithNotificationFactory.create(
            application=updated_application,
            author=org.profiles.first().user)
        updated_application.has_been_opened = True
        updated_application.save()

    for org in orgs:
        org_subs = []
        for sub in subs:
            has_app = sub.applications.filter(organization=org).exists()
            if has_app and sub != multi_org_sub:
                org_subs.append(sub)
        # make a bundle for each org
        bundle = BundlesService.create_bundle_from_submissions(
            organization=org,
            submissions=org_subs,
            skip_pdf=True)
        # save bundle
        filename = 'mock_1_bundle_to_' + org.slug + ".json"
        dump_as_json([bundle], fixture_path(filename))
        filename = 'mock_{}_submissions_to_{}.json'.format(
            len(org_subs), org.slug)
        serialize_subs(org_subs, fixture_path(filename))
    serialize_subs(
        [multi_org_sub],
        fixture_path('mock_1_submission_to_multiple_orgs.json'))
    make_two_mock_transfers()
示例#4
0
 def test_nonexistent_pdf_returns_404(self):
     self.be_cfa_user()
     bundle = BundlesService.create_bundle_from_submissions(
         organization=self.sf_pubdef,
         submissions=self.sf_pubdef_submissions,
         skip_pdf=True)
     response = self.client.get(bundle.get_pdf_bundle_url())
     self.assertEqual(response.status_code, 404)
 def test_should_have_a_pdf_negative(self):
     cc_pubdef = auth_models.Organization.objects.get(
         slug=constants.Organizations.COCO_PUBDEF)
     sub = SubmissionsService.create_for_organizations(
             [cc_pubdef], answers={})
     bundle = BundlesService.create_bundle_from_submissions(
         organization=cc_pubdef, submissions=[sub], skip_pdf=True)
     self.assertFalse(bundle.should_have_a_pdf())
示例#6
0
 def setUpTestData(cls):
     super().setUpTestData()
     # patch slack_simple
     patcher = patch('intake.notifications')
     patcher.start()
     cls.bundle = BundlesService.create_bundle_from_submissions(
         organization=cls.sf_pubdef, submissions=cls.sf_pubdef_submissions)
     patcher.stop()
示例#7
0
 def test_should_have_a_pdf_positive(self):
     sf_pubdef = auth_models.Organization.objects.get(slug='sf_pubdef')
     mock.fillable_pdf(organization=sf_pubdef)
     sub = SubmissionsService.create_for_organizations(
         [sf_pubdef], answers={})
     bundle = BundlesService.create_bundle_from_submissions(
         organization=sf_pubdef, submissions=[sub], skip_pdf=True)
     self.assertTrue(bundle.should_have_a_pdf())
示例#8
0
 def test_nonexistent_pdf_returns_404(self):
     self.be_cfa_user()
     bundle = BundlesService.create_bundle_from_submissions(
         organization=self.sf_pubdef,
         submissions=self.sf_pubdef_submissions,
         skip_pdf=True)
     response = self.client.get(bundle.get_pdf_bundle_url())
     self.assertEqual(response.status_code, 404)
示例#9
0
 def setUpTestData(cls):
     super().setUpTestData()
     # patch slack_simple
     patcher = patch('intake.notifications')
     patcher.start()
     cls.bundle = BundlesService.create_bundle_from_submissions(
         organization=cls.sf_pubdef, submissions=cls.sf_pubdef_submissions)
     patcher.stop()
 def test_should_have_a_pdf_negative(self):
     cc_pubdef = auth_models.Organization.objects.get(
         slug=constants.Organizations.COCO_PUBDEF)
     sub = SubmissionsService.create_for_organizations(
         [cc_pubdef], answers={})
     bundle = BundlesService.create_bundle_from_submissions(
         organization=cc_pubdef, submissions=[sub], skip_pdf=True)
     self.assertFalse(bundle.should_have_a_pdf())
示例#11
0
def build_seed_submissions():
    from intake.services import bundles as BundlesService
    subs = []
    orgs = Organization.objects.filter(is_receiving_agency=True)
    for org in orgs:
        # make 2 submissions to each org
        for i in range(2):
            sub = factories.FormSubmissionWithOrgsFactory.create(
                organizations=[org])
            subs.append(sub)
    # make 1 submission to multiple orgs
    target_orgs = Organization.objects.filter(
        is_receiving_agency=True).exclude(slug__contains='ebclc')
    multi_org_sub = factories.FormSubmissionWithOrgsFactory.create(
        organizations=target_orgs)
    subs.append(multi_org_sub)
    sub_ids = [sub.id for sub in subs]
    applicants = []
    for sub in subs:
        applicants.append(sub.applicant)

    """
    Creating status updates for all applications forces a mock situation
    in which there are 0 unread applications, which limits our test range.
    Working around that by only doing so for the first 2 applications to
    an org.
    """
    for org in orgs:
        updated_application = models.Application.objects.filter(
            organization=org, form_submission_id__in=sub_ids).first()
        factories.StatusUpdateWithNotificationFactory.create(
            application=updated_application,
            author=org.profiles.first().user)
        updated_application.has_been_opened = True
        updated_application.save()

    for org in orgs:
        org_subs = []
        for sub in subs:
            has_app = sub.applications.filter(organization=org).exists()
            if has_app and sub != multi_org_sub:
                org_subs.append(sub)
        # make a bundle for each org
        bundle = BundlesService.create_bundle_from_submissions(
            organization=org,
            submissions=org_subs,
            skip_pdf=True)
        # save bundle
        filename = 'mock_1_bundle_to_' + org.slug + ".json"
        dump_as_json([bundle], fixture_path(filename))
        filename = 'mock_{}_submissions_to_{}.json'.format(
            len(org_subs), org.slug)
        serialize_subs(org_subs, fixture_path(filename))
    serialize_subs(
        [multi_org_sub],
        fixture_path('mock_1_submission_to_multiple_orgs.json'))
    make_two_mock_transfers()
示例#12
0
文件: mock.py 项目: Abimzy/intake
def build_seed_submissions():
    create_seed_users()
    from user_accounts.models import Organization
    subs = []
    orgs = Organization.objects.filter(is_receiving_agency=True)
    for org in orgs:
        # make 2 submissions to each org
        for i in range(2):
            sub = factories.FormSubmissionWithOrgsFactory.create(
                organizations=[org])
            subs.append(sub)
    # make 1 submission to multiple orgs
    target_orgs = Organization.objects.filter(
        is_receiving_agency=True).exclude(slug__contains='ebclc')
    multi_org_sub = factories.FormSubmissionWithOrgsFactory.create(
        organizations=target_orgs)
    subs.append(multi_org_sub)
    sub_ids = [sub.id for sub in subs]
    applications = models.Application.objects.filter(
        form_submission_id__in=sub_ids)

    applicants = []
    for sub in subs:
        applicants.append(sub.applicant)

    for application in applications:
        factories.StatusUpdateWithNotificationFactory.create(
            application=application,
            author=application.organization.profiles.first().user)

    for org in orgs:
        org_subs = []
        for sub in subs:
            has_app = sub.applications.filter(organization=org).exists()
            if has_app and sub != multi_org_sub:
                org_subs.append(sub)
        # make a bundle for each org
        bundle = BundlesService.create_bundle_from_submissions(
            organization=org,
            submissions=org_subs,
            skip_pdf=True)
        # save bundle
        filename = 'mock_1_bundle_to_' + org.slug + ".json"
        dump_as_json([bundle], fixture_path(filename))
        filename = 'mock_{}_submissions_to_{}.json'.format(
            len(org_subs), org.slug)
        serialize_subs(org_subs, fixture_path(filename))
    serialize_subs(
        [multi_org_sub],
        fixture_path('mock_1_submission_to_multiple_orgs.json'))
    events = []
    for applicant in applicants:
        events.extend(
            make_mock_submission_event_sequence(applicant))
    dump_as_json(events, fixture_path('mock_application_events.json'))
    make_two_mock_transfers()
示例#13
0
 def test_build_bundled_pdf_with_no_filled_pdfs(self):
     cc_pubdef = auth_models.Organization.objects.get(slug='cc_pubdef')
     sub = SubmissionsService.create_for_organizations([cc_pubdef],
                                                       answers={})
     bundle = BundlesService.create_bundle_from_submissions(
         organization=cc_pubdef, submissions=[sub], skip_pdf=True)
     get_pdfs_mock = Mock()
     bundle.get_individual_filled_pdfs = get_pdfs_mock
     BundlesService.build_bundled_pdf_if_necessary(bundle)
     get_pdfs_mock.assert_not_called()
示例#14
0
 def test_staff_user_can_see_pdf_bundle(self, slack):
     self.be_cfa_user()
     submissions = self.sf_pubdef_submissions
     bundle = BundlesService.create_bundle_from_submissions(
         submissions=submissions, organization=self.sf_pubdef)
     ids = [s.id for s in submissions]
     url = url_with_ids('intake-pdf_bundle', ids)
     response = self.client.get(url)
     self.assertRedirects(response, bundle.get_pdf_bundle_url())
     pdf_response = self.client.get(response.url)
     self.assertEqual(pdf_response.status_code, 200)
示例#15
0
def build_seed_submissions():
    subs = []
    orgs = Organization.objects.filter(is_receiving_agency=True)
    for org in orgs:
        # make 2 submissions to each org
        for i in range(2):
            sub = factories.FormSubmissionWithOrgsFactory.create(
                organizations=[org])
            subs.append(sub)
    # make 1 submission to multiple orgs
    target_orgs = Organization.objects.filter(
        is_receiving_agency=True).exclude(slug__contains='ebclc')
    multi_org_sub = factories.FormSubmissionWithOrgsFactory.create(
        organizations=target_orgs)
    subs.append(multi_org_sub)
    sub_ids = [sub.id for sub in subs]
    applications = models.Application.objects.filter(
        form_submission_id__in=sub_ids)

    applicants = []
    for sub in subs:
        applicants.append(sub.applicant)

    for application in applications:
        factories.StatusUpdateWithNotificationFactory.create(
            application=application,
            author=application.organization.profiles.first().user)

    for org in orgs:
        org_subs = []
        for sub in subs:
            has_app = sub.applications.filter(organization=org).exists()
            if has_app and sub != multi_org_sub:
                org_subs.append(sub)
        # make a bundle for each org
        bundle = BundlesService.create_bundle_from_submissions(
            organization=org,
            submissions=org_subs,
            skip_pdf=True)
        # save bundle
        filename = 'mock_1_bundle_to_' + org.slug + ".json"
        dump_as_json([bundle], fixture_path(filename))
        filename = 'mock_{}_submissions_to_{}.json'.format(
            len(org_subs), org.slug)
        serialize_subs(org_subs, fixture_path(filename))
    serialize_subs(
        [multi_org_sub],
        fixture_path('mock_1_submission_to_multiple_orgs.json'))
    events = []
    for applicant in applicants:
        events.extend(
            make_mock_submission_event_sequence(applicant))
    dump_as_json(events, fixture_path('mock_application_events.json'))
    make_two_mock_transfers()
示例#16
0
 def test_build_bundled_pdf_with_no_filled_pdfs(self):
     cc_pubdef = auth_models.Organization.objects.get(
         slug=constants.Organizations.COCO_PUBDEF)
     sub = SubmissionsService.create_for_organizations(
         [cc_pubdef], answers={})
     bundle = BundlesService.create_bundle_from_submissions(
         organization=cc_pubdef, submissions=[sub], skip_pdf=True)
     get_pdfs_mock = Mock()
     bundle.get_individual_filled_pdfs = get_pdfs_mock
     BundlesService.build_bundled_pdf_if_necessary(bundle)
     get_pdfs_mock.assert_not_called()
示例#17
0
 def test_staff_user_can_see_pdf_bundle(self, slack):
     self.be_cfa_user()
     submissions = self.sf_pubdef_submissions
     bundle = BundlesService.create_bundle_from_submissions(
         submissions=submissions,
         organization=self.sf_pubdef)
     ids = [s.id for s in submissions]
     url = url_with_ids('intake-pdf_bundle', ids)
     response = self.client.get(url)
     self.assertRedirects(response, bundle.get_pdf_bundle_url())
     pdf_response = self.client.get(response.url)
     self.assertEqual(pdf_response.status_code, 200)
示例#18
0
 def test_get_individual_filled_pdfs(self):
     sf_pubdef = auth_models.Organization.objects.get(slug='sf_pubdef')
     fillable = mock.fillable_pdf(organization=sf_pubdef)
     subs = [
         SubmissionsService.create_for_organizations(
             [sf_pubdef], answers={})
         for i in range(2)]
     expected_pdfs = [
         models.FilledPDF(original_pdf=fillable, submission=sub)
         for sub in subs]
     for pdf in expected_pdfs:
         pdf.save()
     bundle = BundlesService.create_bundle_from_submissions(
         organization=sf_pubdef, submissions=subs, skip_pdf=True)
     query = bundle.get_individual_filled_pdfs().order_by('pk')
     pdfs = list(query)
     self.assertListEqual(pdfs, expected_pdfs)
示例#19
0
    def test_has_pdf_bundle_url_if_needed(self, slack):
        """ApplicationBundleDetailView return pdf url if needed

        create an `ApplicationBundle` that needs a pdf
        try to access `ApplicationBundleDetailView` using `id`
        assert that the url for `FilledPDFBundle` is in the template.
        """
        self.be_sfpubdef_user()
        mock_pdf = SimpleUploadedFile('a.pdf',
                                      b"things",
                                      content_type="application/pdf")
        bundle = BundlesService.create_bundle_from_submissions(
            organization=self.sf_pubdef,
            submissions=self.sf_pubdef_submissions,
            bundled_pdf=mock_pdf)
        url = bundle.get_pdf_bundle_url()
        result = self.client.get(
            reverse('intake-app_bundle_detail',
                    kwargs=dict(bundle_id=bundle.id)))
        self.assertContains(result, url)
示例#20
0
    def test_has_pdf_bundle_url_if_needed(self):
        """ApplicationBundleDetailView return pdf url if needed

        create an `ApplicationBundle` that needs a pdf
        try to access `ApplicationBundleDetailView` using `id`
        assert that the url for `FilledPDFBundle` is in the template.
        """
        self.be_sfpubdef_user()
        mock_pdf = SimpleUploadedFile(
            'a.pdf', b"things", content_type="application/pdf")
        bundle = BundlesService.create_bundle_from_submissions(
            organization=self.sf_pubdef,
            submissions=self.sf_pubdef_submissions,
            bundled_pdf=mock_pdf
        )
        url = bundle.get_pdf_bundle_url()
        result = self.client.get(reverse(
            'intake-app_bundle_detail',
            kwargs=dict(bundle_id=bundle.id)))
        self.assertContains(result, url)
示例#21
0
    def test_build_bundled_pdf_if_has_pdfs(self, logger, get_parser, slack):
        sf_pubdef = auth_models.Organization.objects.get(slug='sf_pubdef')
        subs = [
            SubmissionsService.create_for_organizations([sf_pubdef],
                                                        answers={})
            for i in range(2)
        ]

        should_have_a_pdf = Mock(return_value=True)
        get_individual_filled_pdfs = Mock(
            return_value=[Mock(pdf=b'pdf') for sub in subs])
        get_parser.return_value.join_pdfs.return_value = b'pdf'

        bundle = BundlesService.create_bundle_from_submissions(
            organization=sf_pubdef, submissions=subs, skip_pdf=True)
        bundle.should_have_a_pdf = should_have_a_pdf
        bundle.get_individual_filled_pdfs = get_individual_filled_pdfs
        BundlesService.build_bundled_pdf_if_necessary(bundle)
        logger.assert_not_called()
        slack.assert_not_called()
        get_individual_filled_pdfs.assert_called_once_with()
示例#22
0
    def test_build_bundled_pdf_if_has_pdfs(self, logger, get_parser, slack):
        sf_pubdef = auth_models.Organization.objects.get(
            slug=constants.Organizations.SF_PUBDEF)
        subs = [
            SubmissionsService.create_for_organizations(
                [sf_pubdef], answers={})
            for i in range(2)]

        should_have_a_pdf = Mock(return_value=True)
        get_individual_filled_pdfs = Mock(
            return_value=[Mock(pdf=b'pdf') for sub in subs])
        get_parser.return_value.join_pdfs.return_value = b'pdf'

        bundle = BundlesService.create_bundle_from_submissions(
            organization=sf_pubdef, submissions=subs, skip_pdf=True)
        bundle.should_have_a_pdf = should_have_a_pdf
        bundle.get_individual_filled_pdfs = get_individual_filled_pdfs
        BundlesService.build_bundled_pdf_if_necessary(bundle)
        logger.assert_not_called()
        slack.assert_not_called()
        get_individual_filled_pdfs.assert_called_once_with()
示例#23
0
def build_seed_submissions():
    create_seed_users()
    from user_accounts.models import Organization
    from formation.forms import county_form_selector
    cc_pubdef = Organization.objects.get(
        slug=constants.Organizations.COCO_PUBDEF)
    a_pubdef = Organization.objects.get(
        slug=constants.Organizations.ALAMEDA_PUBDEF)
    ebclc = Organization.objects.get(
        slug=constants.Organizations.EBCLC)
    sf_pubdef = Organization.objects.get(
        slug=constants.Organizations.SF_PUBDEF)
    monterey_pubdef = Organization.objects.get(
        slug=constants.Organizations.MONTEREY_PUBDEF)
    solano_pubdef = Organization.objects.get(
        slug=constants.Organizations.SOLANO_PUBDEF)
    san_diego_pubdef = Organization.objects.get(
        slug=constants.Organizations.SAN_DIEGO_PUBDEF)
    san_joaquin_pubdef = Organization.objects.get(
        slug=constants.Organizations.SAN_JOAQUIN_PUBDEF)
    santa_clara_pubdef = Organization.objects.get(
        slug=constants.Organizations.SANTA_CLARA_PUBDEF)
    fresno_pubdef = Organization.objects.get(
        slug=constants.Organizations.FRESNO_PUBDEF)
    receiving_orgs = [
        cc_pubdef, a_pubdef, ebclc, sf_pubdef, monterey_pubdef,
        solano_pubdef, san_diego_pubdef, san_joaquin_pubdef,
        santa_clara_pubdef, fresno_pubdef]
    answer_pairs = {
        sf_pubdef.slug: fake.sf_county_form_answers,
        cc_pubdef.slug: fake.contra_costa_county_form_answers,
        ebclc.slug: fake.ebclc_answers,
        a_pubdef.slug: fake.alameda_pubdef_answers,
        monterey_pubdef.slug: fake.monterey_pubdef_answers,
        solano_pubdef.slug: fake.solano_pubdef_answers,
        san_diego_pubdef.slug: fake.san_diego_pubdef_answers,
        san_joaquin_pubdef.slug: fake.san_joaquin_pubdef_answers,
        santa_clara_pubdef.slug: fake.santa_clara_pubdef_answers,
        fresno_pubdef.slug: fake.fresno_pubdef_answers,
    }
    form_pairs = {
        org.slug: county_form_selector.get_combined_form_class(
            counties=[org.county.slug])
        for org in receiving_orgs
    }
    # make 2 submissions to each org
    applicants = []
    subs = []
    for org in receiving_orgs:
        for i in range(2):
            raw_answers = answer_pairs[org.slug]()
            Form = form_pairs[org.slug]
            form = Form(raw_answers, validate=True)
            applicant = models.Applicant()
            applicant.save()
            applicants.append(applicant)
            sub = models.FormSubmission(
                applicant=applicant,
                answers=form.cleaned_data
                )
            if org in (a_pubdef, santa_clara_pubdef, monterey_pubdef):
                letter = fake.declaration_letter_answers()
                sub.answers.update(letter)
            sub.save()
            application = models.Application(
                organization=org, form_submission=sub)
            application.save()
            StatusUpdateFactory.create(
                application=application, author=org.profiles.first().user)
            subs.append(sub)
    # make 1 submission to multiple orgs
    target_orgs = [
        a_pubdef, cc_pubdef, sf_pubdef, monterey_pubdef, solano_pubdef,
        san_diego_pubdef, san_joaquin_pubdef, santa_clara_pubdef,
        fresno_pubdef]
    answers = fake.all_county_answers()
    Form = county_form_selector.get_combined_form_class(
        counties=[org.county.slug for org in target_orgs])
    form = Form(answers, validate=True)
    applicant = models.Applicant()
    applicant.save()
    applicants.append(applicant)
    multi_org_sub = models.FormSubmission(
            applicant=applicant, answers=form.cleaned_data)
    multi_org_sub.answers.update(fake.declaration_letter_answers())
    multi_org_sub.save()
    applications = [
        models.Application(organization=org, form_submission=multi_org_sub)
        for org in target_orgs
    ]
    models.Application.objects.bulk_create(applications)
    subs.append(multi_org_sub)
    # fake the date received for each sub
    for sub in subs:
        sub.date_received = local(fake.date_time_between('-2w', 'now'))
        sub.save()
    # make a bundle for each org
    for org in receiving_orgs:
        org_subs = []
        for sub in subs:
            has_app = sub.applications.filter(organization=org).exists()
            if has_app and sub != multi_org_sub:
                org_subs.append(sub)
        bundle = BundlesService.create_bundle_from_submissions(
            organization=org,
            submissions=org_subs,
            skip_pdf=True)
        # save bundle
        filename = 'mock_1_bundle_to_' + org.slug + ".json"
        dump_as_json([bundle], fixture_path(filename))
        filename = 'mock_{}_submissions_to_{}.json'.format(
            len(org_subs), org.slug)
        serialize_subs(org_subs, fixture_path(filename))
    serialize_subs(
        [multi_org_sub],
        fixture_path('mock_1_submission_to_multiple_orgs.json'))
    events = []
    for applicant in applicants:
        events.extend(
            make_mock_submission_event_sequence(applicant))
    dump_as_json(events, fixture_path('mock_application_events.json'))