def get_project_jobs(queue='super'): """Return a list of jobs based on user type.""" from pybossa.cache import projects as cached_projects return create_dict_jobs(cached_projects.get_from_pro_user(), get_project_stats, timeout=(10 * MINUTE), queue=queue)
def get_export_task_jobs(queue): """Export tasks to zip.""" from pybossa.core import project_repo import pybossa.cache.projects as cached_projects from pybossa.pro_features import ProFeatureHandler feature_handler = ProFeatureHandler(current_app.config.get('PRO_FEATURES')) timeout = current_app.config.get('TIMEOUT') if feature_handler.only_for_pro('updated_exports'): if queue == 'high': projects = cached_projects.get_from_pro_user() else: projects = (p.dictize() for p in project_repo.filter_by(published=True) if p.owner.pro is False) else: projects = (p.dictize() for p in project_repo.filter_by(published=True)) for project in projects: project_id = project.get('id') job = dict(name=project_export, args=[project_id], kwargs={}, timeout=timeout, queue=queue) yield job
def get_project_jobs(queue='super'): """Return a list of jobs based on user type.""" from pybossa.cache import projects as cached_projects timeout = current_app.config.get('TIMEOUT') return create_dict_jobs(cached_projects.get_from_pro_user(), get_project_stats, timeout=timeout, queue=queue)
def test_get_from_pro_user_projects_no_projects(self): """Test CACHE PROJECTS get_from_pro_user returns empty list if no projects with 'pro' owners""" pro_user = UserFactory.create(pro=True) ProjectFactory.create() pro_owned_projects = cached_projects.get_from_pro_user() assert pro_owned_projects == [], pro_owned_projects
def test_get_from_pro_users_returns_required_fields(self): """Test CACHE PROJECTS get_from_pro_user returns required fields""" pro_user = UserFactory.create(pro=True) ProjectFactory.create(owner=pro_user) fields = ('id', 'short_name') pro_owned_projects = cached_projects.get_from_pro_user() for field in fields: assert field in pro_owned_projects[0].keys(), field
def test_get_from_pro_user_projects(self): """Test CACHE PROJECTS get_from_pro_user returns list of projects with 'pro' owners only""" pro_user = UserFactory.create(pro=True) ProjectFactory.create() pro_project = ProjectFactory.create(owner=pro_user) pro_owned_projects = cached_projects.get_from_pro_user() assert len(pro_owned_projects) is 1, len(pro_owned_projects) assert pro_owned_projects[0]['short_name'] == pro_project.short_name
def get_autoimport_jobs(queue='low'): """Get autoimport jobs.""" from pybossa.core import project_repo import pybossa.cache.projects as cached_projects pro_user_projects = cached_projects.get_from_pro_user() for project_dict in pro_user_projects: project = project_repo.get(project_dict['id']) if project.has_autoimporter(): job = dict(name=import_tasks, args=[project.id], kwargs=project.get_autoimporter(), timeout=(10 * MINUTE), queue=queue) yield job
def get_export_task_jobs(queue): """Export tasks to zip.""" from pybossa.core import project_repo import pybossa.cache.projects as cached_projects if queue == 'high': projects = cached_projects.get_from_pro_user() else: projects = (p.dictize() for p in project_repo.get_all() if p.owner.pro is False) for project in projects: project_id = project.get('id') job = dict(name=project_export, args=[project_id], kwargs={}, timeout=(10 * MINUTE), queue=queue) yield job
def get_export_task_jobs(queue): """Export tasks to zip.""" from pybossa.core import project_repo import pybossa.cache.projects as cached_projects from pybossa.pro_features import ProFeatureHandler feature_handler = ProFeatureHandler(current_app.config.get("PRO_FEATURES")) if feature_handler.only_for_pro("updated_exports"): if queue == "high": projects = cached_projects.get_from_pro_user() else: projects = (p.dictize() for p in project_repo.get_all() if p.owner.pro is False) else: projects = (p.dictize() for p in project_repo.get_all()) for project in projects: project_id = project.get("id") job = dict(name=project_export, args=[project_id], kwargs={}, timeout=(10 * MINUTE), queue=queue) yield job
def get_project_jobs(queue): """Return a list of jobs based on user type.""" from pybossa.core import project_repo from pybossa.cache import projects as cached_projects timeout = current_app.config.get('TIMEOUT') if queue == 'super': projects = cached_projects.get_from_pro_user() elif queue == 'high': projects = (p.dictize() for p in project_repo.get_all()) else: projects = [] for project in projects: project_id = project.get('id') project_short_name = project.get('short_name') job = dict(name=get_project_stats, args=[project_id, project_short_name], kwargs={}, timeout=timeout, queue=queue) yield job
def get_autoimport_jobs(queue='low'): """Get autoimport jobs.""" from pybossa.core import project_repo import pybossa.cache.projects as cached_projects from pybossa.pro_features import ProFeatureHandler feature_handler = ProFeatureHandler(current_app.config.get('PRO_FEATURES')) if feature_handler.only_for_pro('autoimporter'): projects = cached_projects.get_from_pro_user() else: projects = (p.dictize() for p in project_repo.get_all()) for project_dict in projects: project = project_repo.get(project_dict['id']) if project.has_autoimporter(): job = dict(name=import_tasks, args=[project.id], kwargs=project.get_autoimporter(), timeout=IMPORT_TASKS_TIMEOUT, queue=queue) yield job
def get_project_jobs(queue): """Return a list of jobs based on user type.""" from pybossa.core import project_repo from pybossa.cache import projects as cached_projects timeout = current_app.config.get('TIMEOUT') if queue == 'super': projects = cached_projects.get_from_pro_user() elif queue == 'high': projects = (p.dictize() for p in project_repo.filter_by(published=True) if p.owner.pro is False) else: projects = [] for project in projects: project_id = project.get('id') project_short_name = project.get('short_name') job = dict(name=get_project_stats, args=[project_id, project_short_name], kwargs={}, timeout=timeout, queue=queue) yield job
def get_autoimport_jobs(queue='low'): """Get autoimport jobs.""" from pybossa.core import project_repo import pybossa.cache.projects as cached_projects from pybossa.pro_features import ProFeatureHandler feature_handler = ProFeatureHandler(current_app.config.get('PRO_FEATURES')) timeout = current_app.config.get('TIMEOUT') if feature_handler.only_for_pro('autoimporter'): projects = cached_projects.get_from_pro_user() else: projects = (p.dictize() for p in project_repo.get_all()) for project_dict in projects: project = project_repo.get(project_dict['id']) if project.has_autoimporter(): job = dict(name=import_tasks, args=[project.id, True], kwargs=project.get_autoimporter(), timeout=timeout, queue=queue) yield job
def get_autoimport_jobs(queue="low"): """Get autoimport jobs.""" from pybossa.core import project_repo import pybossa.cache.projects as cached_projects from pybossa.pro_features import ProFeatureHandler feature_handler = ProFeatureHandler(current_app.config.get("PRO_FEATURES")) if feature_handler.only_for_pro("autoimporter"): projects = cached_projects.get_from_pro_user() else: projects = (p.dictize() for p in project_repo.get_all()) for project_dict in projects: project = project_repo.get(project_dict["id"]) if project.has_autoimporter(): job = dict( name=import_tasks, args=[project.id], kwargs=project.get_autoimporter(), timeout=IMPORT_TASKS_TIMEOUT, queue=queue, ) yield job