Esempio n. 1
0
    def test_on_complete_embargo_creates_registration_for_draft_initiator(self, mock_enquque):
        user = factories.UserFactory()
        end_date = timezone.now() + datetime.timedelta(days=366)  # <- leap year
        approval = DraftRegistrationApproval(
            meta={
                'registration_choice': 'embargo',
                'embargo_end_date': end_date.isoformat()
            }
        )
        approval.save()
        project = factories.ProjectFactory(creator=user)
        registration_schema = MetaSchema.objects.get(name='Prereg Challenge', schema_version=2)
        draft = factories.DraftRegistrationFactory(
            branched_from=project,
            registration_schema=registration_schema,
        )
        draft.approval = approval
        draft.save()

        approval._on_complete(user)
        draft.reload()
        registered_node = draft.registered_node
        assert registered_node is not None
        assert registered_node.is_pending_embargo
        assert registered_node.registered_user == draft.initiator
Esempio n. 2
0
    def test_on_complete_immediate_creates_registration_for_draft_initiator(self, mock_enquque):
        user = factories.UserFactory()
        project = factories.ProjectFactory(creator=user)
        registration_schema = MetaSchema.find_one(
            Q('name', 'eq', 'Prereg Challenge') &
            Q('schema_version', 'eq', 2)
        )
        draft = factories.DraftRegistrationFactory(
            branched_from=project,
            registration_schema=registration_schema,
        )
        approval = DraftRegistrationApproval(
            meta={
                'registration_choice': 'immediate'
            }
        )
        approval.save()
        draft.approval = approval
        draft.save()
        approval._on_complete(user)
        draft.reload()
        registered_node = draft.registered_node

        assert registered_node is not None
        assert registered_node.is_pending_registration
        assert registered_node.registered_user == draft.initiator
Esempio n. 3
0
    def test_approval_after_initiator_is_merged_into_another_user(self, mock_enqueue):
        approver = factories.UserFactory()
        administer_permission = Permission.objects.get(codename='administer_prereg')
        approver.user_permissions.add(administer_permission)
        approver.save()

        mergee = factories.UserFactory(fullname='Manny Mergee')
        merger = factories.UserFactory(fullname='Merve Merger')
        project = factories.ProjectFactory(creator=mergee)
        registration_schema = MetaSchema.objects.get(name='Prereg Challenge', schema_version=2)
        draft = factories.DraftRegistrationFactory(
            branched_from=project,
            registration_schema=registration_schema,
        )
        merger.merge_user(mergee)
        approval = DraftRegistrationApproval(
            meta={
                'registration_choice': 'immediate'
            }
        )
        approval.save()
        draft.approval = approval
        draft.save()
        approval.approve(approver)

        draft.reload()
        registered_node = draft.registered_node
        assert registered_node.registered_user == merger
Esempio n. 4
0
    def test_approval_after_initiator_is_merged_into_another_user(self, mock_enqueue):
        approver = factories.UserFactory()
        approver.add_system_tag(settings.PREREG_ADMIN_TAG)

        mergee = factories.UserFactory(fullname='Manny Mergee')
        merger = factories.UserFactory(fullname='Merve Merger')
        project = factories.ProjectFactory(creator=mergee)
        registration_schema = MetaSchema.find_one(
            Q('name', 'eq', 'Prereg Challenge') &
            Q('schema_version', 'eq', 2)
        )
        draft = factories.DraftRegistrationFactory(
            branched_from=project,
            registration_schema=registration_schema,
        )
        merger.merge_user(mergee)
        approval = DraftRegistrationApproval(
            meta={
                'registration_choice': 'immediate'
            }
        )
        approval.save()
        draft.approval = approval
        draft.save()
        approval.approve(approver)

        draft.reload()
        registered_node = draft.registered_node
        assert registered_node.registered_user == merger
Esempio n. 5
0
 def submit_for_review(self, initiated_by, meta, save=False):
     approval = DraftRegistrationApproval(meta=meta)
     approval.save()
     self.approval = approval
     self.add_status_log(initiated_by, DraftRegistrationLog.SUBMITTED)
     if save:
         self.save()
Esempio n. 6
0
 def submit_for_review(self, initiated_by, meta, save=False):
     approval = DraftRegistrationApproval(
         meta=meta
     )
     approval.save()
     self.approval = approval
     self.add_status_log(initiated_by, DraftRegistrationLog.SUBMITTED)
     if save:
         self.save()
Esempio n. 7
0
 def test_approval_requires_only_a_single_authorizer(self):
     approval = DraftRegistrationApproval(
         meta={
             'registration_choice': 'immediate',
         }
     )
     approval.save()
     with mock.patch.object(approval, '_on_complete') as mock_on_complete:
         authorizer1 = factories.AuthUserFactory()
         authorizer1.add_system_tag(settings.PREREG_ADMIN_TAG)
         approval.approve(authorizer1)
         assert mock_on_complete.called
         assert approval.is_approved
Esempio n. 8
0
 def test_approval_requires_only_a_single_authorizer(self):
     approval = DraftRegistrationApproval(
         meta={
             'registration_choice': 'immediate',
         }
     )
     approval.save()
     with mock.patch.object(approval, '_on_complete') as mock_on_complete:
         authorizer1 = factories.AuthUserFactory()
         administer_permission = Permission.objects.get(codename='administer_prereg')
         authorizer1.user_permissions.add(administer_permission)
         authorizer1.save()
         approval.approve(authorizer1)
         assert mock_on_complete.called
         assert approval.is_approved
Esempio n. 9
0
 def draft_rejected(self, user, project):
     draft = DraftRegistrationFactory(
         initiator=user, registration_schema=get_prereg_schema())
     draft.approval = DraftRegistrationApproval(
         meta={'registration_choice': 'immediate'})
     draft.approval.state = 'rejected'
     draft.approval.save()
     draft.save()
     return draft
Esempio n. 10
0
 def test_on_reject(self, mock_send_mail):
     user = factories.UserFactory()
     approval = DraftRegistrationApproval(
         meta={
             'registration_choice': 'immediate'
         }
     )
     approval.save()
     project = factories.ProjectFactory(creator=user)
     registration_schema = MetaSchema.objects.get(name='Prereg Challenge', schema_version=2)
     draft = factories.DraftRegistrationFactory(
         branched_from=project,
         registration_schema=registration_schema,
     )
     draft.approval = approval
     draft.save()
     approval._on_reject(user)
     assert approval.meta == {}
     assert mock_send_mail.call_count == 1
Esempio n. 11
0
 def draft_approved_and_registered(self, user, project):
     draft = DraftRegistrationFactory(
         initiator=user, registration_schema=get_prereg_schema())
     draft.approval = DraftRegistrationApproval(
         meta={'registration_choice': 'immediate'})
     draft.approval.state = 'approved'
     draft.approval.save()
     draft.registered_node = RegistrationFactory(creator=user,
                                                 project=project,
                                                 is_public=True)
     draft.save()
     return draft
Esempio n. 12
0
    def test_on_complete_immediate_creates_registration_for_draft_initiator(self, mock_enquque):
        ensure_schemas()
        user = factories.UserFactory()
        project = factories.ProjectFactory(creator=user)
        registration_schema = MetaSchema.find_one(
            Q('name', 'eq', 'Prereg Challenge') &
            Q('schema_version', 'eq', 2)
        )
        draft = factories.DraftRegistrationFactory(
            branched_from=project,
            registration_schema=registration_schema,
        )
        approval = DraftRegistrationApproval(
            meta={
                'registration_choice': 'immediate'
            }
        )
        approval.save()
        draft.approval = approval
        draft.save()
        approval._on_complete(user)
        draft.reload()
        registered_node = draft.registered_node

        assert registered_node is not None
        assert registered_node.is_pending_registration
        assert registered_node.registered_user == draft.initiator
Esempio n. 13
0
    def test_on_complete_embargo_creates_registration_for_draft_initiator(
            self, mock_enquque):
        user = factories.UserFactory()
        end_date = timezone.now() + datetime.timedelta(
            days=366)  # <- leap year
        approval = DraftRegistrationApproval(
            meta={
                'registration_choice': 'embargo',
                'embargo_end_date': end_date.isoformat()
            })
        approval.save()
        project = factories.ProjectFactory(creator=user)
        registration_schema = MetaSchema.objects.get(name='Prereg Challenge',
                                                     schema_version=2)
        draft = factories.DraftRegistrationFactory(
            branched_from=project,
            registration_schema=registration_schema,
        )
        draft.approval = approval
        draft.save()

        approval._on_complete(user)
        draft.reload()
        registered_node = draft.registered_node
        assert registered_node is not None
        assert registered_node.is_pending_embargo
        assert registered_node.registered_user == draft.initiator
Esempio n. 14
0
    def test_approval_after_initiator_is_merged_into_another_user(
            self, mock_enqueue):
        approver = factories.UserFactory()
        approver.add_system_tag(settings.PREREG_ADMIN_TAG)

        mergee = factories.UserFactory(fullname='Manny Mergee')
        merger = factories.UserFactory(fullname='Merve Merger')
        project = factories.ProjectFactory(creator=mergee)
        registration_schema = MetaSchema.objects.get(name='Prereg Challenge',
                                                     schema_version=2)
        draft = factories.DraftRegistrationFactory(
            branched_from=project,
            registration_schema=registration_schema,
        )
        merger.merge_user(mergee)
        approval = DraftRegistrationApproval(
            meta={'registration_choice': 'immediate'})
        approval.save()
        draft.approval = approval
        draft.save()
        approval.approve(approver)

        draft.reload()
        registered_node = draft.registered_node
        assert registered_node.registered_user == merger
Esempio n. 15
0
    def test_approval_after_initiator_is_merged_into_another_user(
            self, mock_enqueue):
        approver = factories.UserFactory()
        administer_permission = Permission.objects.get(
            codename='administer_prereg')
        approver.user_permissions.add(administer_permission)
        approver.save()

        mergee = factories.UserFactory(fullname='Manny Mergee')
        merger = factories.UserFactory(fullname='Merve Merger')
        project = factories.ProjectFactory(creator=mergee)
        registration_schema = RegistrationSchema.objects.get(
            name='Prereg Challenge', schema_version=2)
        draft = factories.DraftRegistrationFactory(
            branched_from=project,
            registration_schema=registration_schema,
        )
        merger.merge_user(mergee)
        approval = DraftRegistrationApproval(
            meta={'registration_choice': 'immediate'})
        approval.save()
        draft.approval = approval
        draft.save()
        approval.approve(approver)

        draft.reload()
        registered_node = draft.registered_node
        assert registered_node.registered_user == merger
Esempio n. 16
0
 def test_approval_requires_only_a_single_authorizer(self):
     approval = DraftRegistrationApproval(
         meta={
             'registration_choice': 'immediate',
         })
     approval.save()
     with mock.patch.object(approval, '_on_complete') as mock_on_complete:
         authorizer1 = factories.AuthUserFactory()
         authorizer1.add_system_tag(settings.PREREG_ADMIN_TAG)
         approval.approve(authorizer1)
         assert mock_on_complete.called
         assert approval.is_approved
Esempio n. 17
0
 def test_approval_requires_only_a_single_authorizer(self):
     approval = DraftRegistrationApproval(
         meta={
             'registration_choice': 'immediate',
         })
     approval.save()
     with mock.patch.object(approval, '_on_complete') as mock_on_complete:
         authorizer1 = factories.AuthUserFactory()
         administer_permission = Permission.objects.get(
             codename='administer_prereg')
         authorizer1.user_permissions.add(administer_permission)
         authorizer1.save()
         approval.approve(authorizer1)
         assert mock_on_complete.called
         assert approval.is_approved
Esempio n. 18
0
 def test_on_reject(self, mock_send_mail):
     user = factories.UserFactory()
     approval = DraftRegistrationApproval(
         meta={'registration_choice': 'immediate'})
     approval.save()
     project = factories.ProjectFactory(creator=user)
     registration_schema = MetaSchema.objects.get(name='Prereg Challenge',
                                                  schema_version=2)
     draft = factories.DraftRegistrationFactory(
         branched_from=project,
         registration_schema=registration_schema,
     )
     draft.approval = approval
     draft.save()
     approval._on_reject(user)
     assert approval.meta == {}
     assert mock_send_mail.call_count == 1