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)
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, )
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