示例#1
0
 def test_delete_results_from_project(self):
     """Test delte_results_from_project works."""
     project = ProjectFactory.create()
     task = TaskFactory.create(project=project, n_answers=1)
     taskrun = TaskRunFactory.create(task=task, project=project)
     result = result_repo.get_by(project_id=task.project.id)
     assert result
     result_repo.delete_results_from_project(project)
     result = result_repo.get_by(project_id=task.project.id)
     assert result is None
示例#2
0
 def test_delete_results_from_project(self):
     """Test delte_results_from_project works."""
     project = ProjectFactory.create()
     task = TaskFactory.create(project=project,n_answers=1)
     taskrun = TaskRunFactory.create(task=task, project=project)
     result = result_repo.get_by(project_id=task.project.id)
     assert result
     result_repo.delete_results_from_project(project)
     result = result_repo.get_by(project_id=task.project.id)
     assert result is None
示例#3
0
文件: cli.py 项目: sakho3600/pybossa
def create_webhooks(projectId):
    """Create webhooks for a given project ID."""
    from pybossa.core import project_repo, task_repo, result_repo
    from pybossa.model.webhook import Webhook

    project = project_repo.get(projectId)
    tasks = task_repo.filter_tasks_by(state='completed',
                                      project_id=projectId)
    print "Analyzing %s tasks" % len(tasks)
    for task in tasks:
        sql = text(
            '''select * from webhook where project_id=:project_id and payload@>'{"task_id": :task_id}';''')
        results = db.engine.execute(
            sql, project_id=project.id, task_id=task.id)
        webhook = None
        for result in results:
            webhook = result
        if not webhook:
            result = result_repo.get_by(project_id=project.id, task_id=task.id)
            payload = dict(
                fired_at=None,
                project_short_name=project.short_name,
                project_id=project.id,
                task_id=task.id,
                result_id=result.id,
                event='task_completed')
            wh = Webhook(project_id=projectId,
                         payload=payload)
            print(wh)
            db.session.add(wh)
            db.session.commit()
    print "Project %s completed!" % project.short_name
示例#4
0
文件: result.py 项目: rlarus/pybossa
 def _update_object(self, inst):
     ensure_authorized_to('create', Result)
     if not inst.task_id:
         raise BadRequest('Invalid task id')
     task_id = inst.task_id
     results = result_repo.get_by(task_id=task_id)
     if results:
         raise BadRequest('Record is already present')
     task = task_repo.get_task(task_id)
     if not task or task.state != 'completed':
         raise BadRequest('Invalid task')
     inst.created = make_timestamp()
     inst.project_id = task.project_id
     inst.task_run_ids = [tr.id for tr in task.task_runs]
     inst.last_version = True
示例#5
0
    def notest_n_results_returns_number_of_total_results(self):
        project = ProjectFactory.create()
        task = TaskFactory.create(n_answers=1, project=project)
        TaskRunFactory.create(task=task, project=project)

        results = cached_projects.n_results(project.id)

        assert results == 0, results

        result = result_repo.get_by(project_id=project.id)

        result.info = dict(foo='bar')

        result_repo.update(result)

        results = cached_projects.n_results(project.id)

        assert results == 1, results
示例#6
0
    def test_n_results_returns_number_of_total_results(self):
        project = ProjectFactory.create()
        task = TaskFactory.create(n_answers=1, project=project)
        TaskRunFactory.create(task=task, project=project)

        results = cached_projects.n_results(project.id)

        assert results == 0, results

        result = result_repo.get_by(project_id=project.id)

        result.info = dict(foo='bar')

        result_repo.update(result)

        results = cached_projects.n_results(project.id)

        assert results == 1, results
示例#7
0
    def test_get_last_version(self):
        """Test API result returns always latest version."""
        result = self.create_result()
        project = project_repo.get(result.project_id)
        task = task_repo.get_task(result.task_id)
        task.n_answers = 2
        TaskRunFactory.create(task=task, project=project)
        result = result_repo.get_by(project_id=project.id)

        assert result.last_version is True, result.last_version

        result_id = result.id

        results = result_repo.filter_by(project_id=project.id, last_version=False)
        assert len(results) == 2, len(results)

        for r in results:
            if r.id == result_id:
                assert r.last_version is True, r.last_version
            else:
                assert r.last_version is False, r.last_version
示例#8
0
def create_results():
    """Create results when migrating."""
    from pybossa.core import project_repo, task_repo, result_repo
    from pybossa.model.result import Result

    projects = project_repo.filter_by(published=True)

    for project in projects:
        print "Working on project: %s" % project.short_name
        tasks = task_repo.filter_tasks_by(state='completed',
                                          project_id=project.id)
        print "Analyzing %s tasks" % len(tasks)
        for task in tasks:
            result = result_repo.get_by(project_id=project.id, task_id=task.id)
            if result is None:
                result = Result(project_id=project.id,
                                task_id=task.id,
                                task_run_ids=[tr.id for tr in task.task_runs],
                                last_version=True)
                db.session.add(result)
        db.session.commit()
        print "Project %s completed!" % project.short_name
示例#9
0
文件: cli.py 项目: bloomberg/pybossa
def create_results():
    """Create results when migrating."""
    from pybossa.core import project_repo, task_repo, result_repo
    from pybossa.model.result import Result

    projects = project_repo.filter_by(published=True)

    for project in projects:
        print "Working on project: %s" % project.short_name
        tasks = task_repo.filter_tasks_by(state='completed',
                                          project_id=project.id)
        print "Analyzing %s tasks" % len(tasks)
        for task in tasks:
            result = result_repo.get_by(project_id=project.id, task_id=task.id)
            if result is None:
                result = Result(project_id=project.id,
                                task_id=task.id,
                                task_run_ids=[tr.id for tr in task.task_runs],
                                last_version=True)
                db.session.add(result)
        db.session.commit()
        print "Project %s completed!" % project.short_name