Example #1
0
 def test_archive_success_adds_registered_logs(self, mock_enqueue):
     proj = factories.ProjectFactory()
     len_logs = len(proj.logs)
     reg = factories.RegistrationFactory(project=proj, archive=True)
     archiver_utils.archive_success(reg, proj.creator)
     assert_equal(len(proj.logs), len_logs + 1)
     assert_equal([p for p in proj.logs][-1].action, NodeLog.PROJECT_REGISTERED)
Example #2
0
def archive_callback(dst):
    """Blinker listener for updates to the archive task. When the tree of ArchiveJob
    instances is complete, proceed to send success or failure mails

    :param dst: registration Node
    """
    root = dst.root
    root_job = root.archive_job
    if not root_job.archive_tree_finished():
        return
    if root_job.sent:
        return
    root_job.sent = True
    root_job.save()
    if root_job.success:
        archiver_utils.archive_success(root, root.registered_user)
        if dst.pending_embargo:
            for contributor in root.active_contributors():
                project_utils.send_embargo_email(
                    root,
                    contributor,
                    urls=root_job.meta['embargo_urls'].get(contributor._id),
                )
        else:
            archiver_utils.send_archiver_success_mail(root)
        for node in node_and_primary_descendants(root):
            node.update_search()  # update search if public
    else:
        archiver_utils.handle_archive_fail(
            ARCHIVER_UNCAUGHT_ERROR,
            root.registered_from,
            root,
            root.registered_user,
            dst.archive_job.target_addons,
        )
Example #3
0
def archive_callback(dst):
    """Blinker listener for updates to the archive task. When the tree of ArchiveJob
    instances is complete, proceed to send success or failure mails

    :param dst: registration Node
    """
    root = dst.root
    root_job = root.archive_job
    if not root_job.archive_tree_finished():
        return
    if root_job.sent:
        return
    root_job.sent = True
    root_job.save()
    if root_job.success:
        archiver_utils.archive_success(root, root.registered_user)
        if dst.pending_embargo:
            for contributor in root.active_contributors():
                project_utils.send_embargo_email(
                    root,
                    contributor,
                    urls=root_job.meta['embargo_urls'].get(contributor._id),
                )
        else:
            archiver_utils.send_archiver_success_mail(root)
        for node in node_and_primary_descendants(root):
            node.update_search()  # update search if public
    else:
        archiver_utils.handle_archive_fail(
            ARCHIVER_UNCAUGHT_ERROR,
            root.registered_from,
            root,
            root.registered_user,
            dst.archive_job.target_addons,
        )
Example #4
0
 def test_archive_success_adds_registered_logs(self, mock_enqueue):
     proj = factories.ProjectFactory()
     len_logs = len(proj.logs)
     reg = factories.RegistrationFactory(project=proj, archive=True)
     archiver_utils.archive_success(reg, proj.creator)
     assert_equal(len(proj.logs), len_logs + 1)
     assert_equal([p for p in proj.logs][-1].action, NodeLog.PROJECT_REGISTERED)
Example #5
0
    def _create(cls, target_class, project=None, schema=None, user=None,
                template=None, data=None, archive=False, *args, **kwargs):
        save_kwargs(**kwargs)

        # Original project to be registered
        project = project or target_class(*args, **kwargs)
        project.save()

        # Default registration parameters
        #schema = schema or MetaSchema.find_one(
        #    Q('name', 'eq', 'Open-Ended_Registration')
        #)
        schema = None
        user = user or project.creator
        template = template or "Template1"
        data = data or "Some words"
        auth = Auth(user=user)
        register = lambda: project.register_node(
            schema=schema,
            auth=auth,
            template=template,
            data=data,
        )
        ArchiveJob(
            src_node=project,
            dst_node=register,
            initiator=user,
        )
        if archive:
            return register()
        else:
            with patch('framework.tasks.handlers.enqueue_task'):
                reg = register()
                archiver_utils.archive_success(
                    reg,
                    reg.registered_user
                )
                return reg
Example #6
0
    def _create(cls, target_class, project=None, schema=None, user=None,
                template=None, data=None, archive=False, *args, **kwargs):
        save_kwargs(**kwargs)

        # Original project to be registered
        project = project or target_class(*args, **kwargs)
        project.save()

        # Default registration parameters
        #schema = schema or MetaSchema.find_one(
        #    Q('name', 'eq', 'Open-Ended_Registration')
        #)
        schema = None
        user = user or project.creator
        template = template or "Template1"
        data = data or "Some words"
        auth = Auth(user=user)
        register = lambda: project.register_node(
            schema=schema,
            auth=auth,
            template=template,
            data=data,
        )
        ArchiveJob(
            src_node=project,
            dst_node=register,
            initiator=user,
        )
        if archive:
            return register()
        else:
            with patch('framework.tasks.handlers.enqueue_task'):
                reg = register()
                archiver_utils.archive_success(
                    reg,
                    reg.registered_user
                )
                return reg