예제 #1
0
    def test_returns_min_year_if_no_beneficiary_import_exist_for_given_source_id(
            self, app):
        # given
        old_source_id = 1
        new_source_id = 2
        now = datetime.utcnow()
        yesterday = now - timedelta(days=1)

        user = users_factories.BeneficiaryGrant18Factory(
            dateCreated=yesterday, email="*****@*****.**")
        beneficiary_import = users_factories.BeneficiaryImportFactory(
            beneficiary=user,
            applicationId=3,
            sourceId=old_source_id,
            source=BeneficiaryImportSources.demarches_simplifiees.value,
        )
        users_factories.BeneficiaryImportStatusFactory(
            beneficiaryImport=beneficiary_import,
            status=ImportStatus.CREATED,
            date=yesterday)

        # when
        most_recent_creation_date = find_most_recent_beneficiary_creation_date_for_source(
            BeneficiaryImportSources.demarches_simplifiees, new_source_id)

        # then
        assert most_recent_creation_date == datetime(MINYEAR, 1, 1)
예제 #2
0
    def test_returns_created_at_date_of_most_recent_beneficiary_import_with_created_status_for_one_procedure(
            self, app):
        # given
        source_id = 1
        now = datetime.utcnow()
        yesterday = now - timedelta(days=1)
        two_days_ago = now - timedelta(days=2)
        three_days_ago = now - timedelta(days=3)

        user1 = create_user(date_created=yesterday, email="*****@*****.**")
        user2 = create_user(date_created=two_days_ago,
                            email="*****@*****.**")
        user3 = create_user(date_created=three_days_ago,
                            email="*****@*****.**")
        beneficiary_import = [
            create_beneficiary_import(user=user2,
                                      status=ImportStatus.ERROR,
                                      date=two_days_ago,
                                      application_id=1,
                                      source_id=source_id),
            create_beneficiary_import(user=user3,
                                      status=ImportStatus.CREATED,
                                      date=three_days_ago,
                                      application_id=3,
                                      source_id=source_id),
        ]

        repository.save(user1, *beneficiary_import)

        # when
        most_recent_creation_date = find_most_recent_beneficiary_creation_date_for_source(
            BeneficiaryImportSources.demarches_simplifiees, source_id)

        # then
        assert most_recent_creation_date == three_days_ago
예제 #3
0
def pc_remote_import_beneficiaries() -> None:
    procedure_id = settings.DMS_NEW_ENROLLMENT_PROCEDURE_ID
    import_from_date = find_most_recent_beneficiary_creation_date_for_source(
        BeneficiaryImportSources.demarches_simplifiees, procedure_id)
    remote_import.run(procedure_id)
    remote_tag_has_completed.run(import_from_date, procedure_id)
    archive_dms_applications.archive_applications(procedure_id, dry_run=False)
예제 #4
0
def pc_import_beneficiaries_from_dms_v3() -> None:
    procedure_id = settings.DMS_ENROLLMENT_PROCEDURE_ID_AFTER_GENERAL_OPENING
    import_from_date = find_most_recent_beneficiary_creation_date_for_source(
        BeneficiaryImportSources.demarches_simplifiees, procedure_id)
    remote_import.run(
        procedure_id,
        use_graphql_api=FeatureToggle.ENABLE_DMS_GRAPHQL_API.is_active())
    remote_tag_has_completed.run(import_from_date, procedure_id)
    archive_dms_applications.archive_applications(procedure_id, dry_run=False)
예제 #5
0
def pc_remote_import_beneficiaries_from_old_dms() -> None:
    if not settings.IS_PROD:
        return
    procedure_id = 44623
    import_from_date = find_most_recent_beneficiary_creation_date_for_source(
        BeneficiaryImportSources.demarches_simplifiees, procedure_id)
    remote_import.run(procedure_id)
    remote_tag_has_completed.run(import_from_date, procedure_id)
    archive_dms_applications.archive_applications(procedure_id, dry_run=False)
예제 #6
0
    def test_returns_min_year_if_no_beneficiary_import_exist(self, app):
        # given
        yesterday = datetime.utcnow() - timedelta(days=1)
        users_factories.BeneficiaryGrant18Factory(dateCreated=yesterday)

        # when
        most_recent_creation_date = find_most_recent_beneficiary_creation_date_for_source(
            BeneficiaryImportSources.demarches_simplifiees, 1)

        # then
        assert most_recent_creation_date == datetime(MINYEAR, 1, 1)
예제 #7
0
def pc_import_beneficiaries_from_dms_v4() -> None:
    for procedure_name, procedure_id in (
        ("v4_FR", settings.DMS_ENROLLMENT_PROCEDURE_ID_v4_FR),
        ("v4_ET", settings.DMS_ENROLLMENT_PROCEDURE_ID_v4_ET),
    ):
        if not procedure_id:
            logger.info("Skipping DMS %s because procedure id is empty",
                        procedure_name)
            continue
        import_from_date = find_most_recent_beneficiary_creation_date_for_source(
            BeneficiaryImportSources.demarches_simplifiees, procedure_id)
        remote_import.run(
            procedure_id,
            use_graphql_api=FeatureToggle.ENABLE_DMS_GRAPHQL_API.is_active())
        remote_tag_has_completed.run(import_from_date, procedure_id)
        archive_dms_applications.archive_applications(procedure_id,
                                                      dry_run=False)
예제 #8
0
    def test_returns_created_at_date_of_most_recent_beneficiary_import_with_created_status_for_one_procedure(
            self, app):
        # given
        source_id = 1
        now = datetime.utcnow()
        yesterday = now - timedelta(days=1)
        two_days_ago = now - timedelta(days=2)
        three_days_ago = now - timedelta(days=3)

        users_factories.BeneficiaryGrant18Factory(dateCreated=yesterday,
                                                  email="*****@*****.**")
        user2 = users_factories.BeneficiaryGrant18Factory(
            dateCreated=two_days_ago, email="*****@*****.**")
        user3 = users_factories.BeneficiaryGrant18Factory(
            dateCreated=three_days_ago, email="*****@*****.**")
        beneficiary_import = users_factories.BeneficiaryImportFactory(
            beneficiary=user2,
            applicationId=1,
            sourceId=source_id,
            source=BeneficiaryImportSources.demarches_simplifiees.value,
        )
        users_factories.BeneficiaryImportStatusFactory(
            beneficiaryImport=beneficiary_import,
            status=ImportStatus.ERROR,
            date=two_days_ago)

        beneficiary_import = users_factories.BeneficiaryImportFactory(
            beneficiary=user3,
            applicationId=3,
            sourceId=source_id,
            source=BeneficiaryImportSources.demarches_simplifiees.value,
        )
        users_factories.BeneficiaryImportStatusFactory(
            beneficiaryImport=beneficiary_import,
            status=ImportStatus.CREATED,
            date=three_days_ago)
        # when
        most_recent_creation_date = find_most_recent_beneficiary_creation_date_for_source(
            BeneficiaryImportSources.demarches_simplifiees, source_id)

        # then
        assert most_recent_creation_date == three_days_ago
예제 #9
0
    def test_returns_min_year_if_no_beneficiary_import_exist_for_given_source_id(
            self, app):
        # given
        old_source_id = 1
        new_source_id = 2
        now = datetime.utcnow()
        yesterday = now - timedelta(days=1)

        user = create_user(date_created=yesterday, email="*****@*****.**")
        beneficiary_import = create_beneficiary_import(
            user=user,
            status=ImportStatus.CREATED,
            date=yesterday,
            application_id=3,
            source_id=old_source_id)

        repository.save(beneficiary_import)

        # when
        most_recent_creation_date = find_most_recent_beneficiary_creation_date_for_source(
            BeneficiaryImportSources.demarches_simplifiees, new_source_id)

        # then
        assert most_recent_creation_date == datetime(MINYEAR, 1, 1)