Beispiel #1
0
 def test_format_returning_users(self):
     """Test format returning users works."""
     u = UserFactory.create()
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     day = datetime.utcnow() - timedelta(days=2)
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     day = datetime.utcnow() - timedelta(days=1)
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     returning_users_week()
     res = format_returning_users()
     for i in range(1, 8):
         if i == 1:
             day = '%s day' % i
         else:
             day = "%s days" % i
         err = "%s != %s" % (res['labels'][i - 1], day)
         assert res['labels'][i - 1] == day, err
         if day == '3 days':
             assert res['labels'][i - 1] == day, day
             assert res['series'][0][i - 1] == 1, res['series'][0][i - 1]
         else:
             assert res['series'][0][i - 1] == 0, res
 def test_format_returning_users(self):
     """Test format returning users works."""
     u = UserFactory.create()
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     TaskRunFactory.create(user=u)
     day = datetime.utcnow() - timedelta(days=2)
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     day = datetime.utcnow() - timedelta(days=1)
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     TaskRunFactory.create(user=u, finish_time=day.isoformat())
     returning_users_week()
     res = format_returning_users()
     for i in range(1, 8):
         if i == 1:
             day = "%s day" % i
         else:
             day = "%s days" % i
         err = "%s != %s" % (res["labels"][i - 1], day)
         assert res["labels"][i - 1] == day, err
         if day == "3 days":
             assert res["labels"][i - 1] == day, day
             assert res["series"][0][i - 1] == 1, res["series"][0][i - 1]
         else:
             assert res["series"][0][i - 1] == 0, res
Beispiel #3
0
 def test_format_returning_users_emtpy(self, db_mock):
     """Test format returning users works."""
     db_mock.slave_session.execute.return_value = []
     TaskRunFactory.create()
     day = datetime.utcnow() - timedelta(days=1)
     TaskRunFactory.create(finish_time=day.isoformat())
     returning_users_week()
     res = format_returning_users()
     for i in range(1, 8):
         if i == 1:
             day = '%s day' % i
         else:
             day = "%s days" % i
         err = "%s != %s" % (res['labels'][i - 1], day)
         assert res['labels'][i - 1] == day, err
         assert res['series'][0][i - 1] == 0, res['series'][i][0]
 def test_format_returning_users_emtpy(self, db_mock):
     """Test format returning users works."""
     db_mock.slave_session.execute.return_value = []
     TaskRunFactory.create()
     day = datetime.utcnow() - timedelta(days=1)
     TaskRunFactory.create(finish_time=day.isoformat())
     returning_users_week()
     res = format_returning_users()
     for i in range(1, 8):
         if i == 1:
             day = "%s day" % i
         else:
             day = "%s days" % i
         err = "%s != %s" % (res["labels"][i - 1], day)
         assert res["labels"][i - 1] == day, err
         assert res["series"][0][i - 1] == 0, res["series"][i][0]
Beispiel #5
0
def dashboard():
    """Show PYBOSSA Dashboard."""
    try:
        if request.args.get('refresh') == '1':
            db_jobs = get_dashboard_jobs()
            for j in db_jobs:
                DASHBOARD_QUEUE.enqueue(j['name'])
            msg = gettext('Dashboard jobs enqueued,'
                          ' refresh page in a few minutes')
            flash(msg)
        active_users_last_week = dashb.format_users_week()
        active_anon_last_week = dashb.format_anon_week()
        draft_projects_last_week = dashb.format_draft_projects()
        published_projects_last_week = dashb.format_published_projects()
        update_projects_last_week = dashb.format_update_projects()
        new_tasks_week = dashb.format_new_tasks()
        new_task_runs_week = dashb.format_new_task_runs()
        new_users_week = dashb.format_new_users()
        returning_users_week = dashb.format_returning_users()
        update_feed = get_update_feed()

        response = dict(
            template='admin/dashboard.html',
            title=gettext('Dashboard'),
            active_users_last_week=active_users_last_week,
            active_anon_last_week=active_anon_last_week,
            draft_projects_last_week=draft_projects_last_week,
            published_projects_last_week=published_projects_last_week,
            update_projects_last_week=update_projects_last_week,
            new_tasks_week=new_tasks_week,
            new_task_runs_week=new_task_runs_week,
            new_users_week=new_users_week,
            returning_users_week=returning_users_week,
            update_feed=update_feed,
            wait=False)
        return handle_content_type(response)
    except ProgrammingError as e:
        response = dict(template='admin/dashboard.html',
                        title=gettext('Dashboard'),
                        wait=True)
        return handle_content_type(response)
    except Exception as e:  # pragma: no cover
        current_app.logger.error(e)
        return abort(500)
Beispiel #6
0
def dashboard():
    """Show PYBOSSA Dashboard."""
    try:
        if request.args.get('refresh') == '1':
            db_jobs = get_dashboard_jobs()
            for j in db_jobs:
                DASHBOARD_QUEUE.enqueue(j['name'])
            msg = gettext('Dashboard jobs enqueued,'
                          ' refresh page in a few minutes')
            flash(msg)
        active_users_last_week = dashb.format_users_week()
        active_anon_last_week = dashb.format_anon_week()
        draft_projects_last_week = dashb.format_draft_projects()
        published_projects_last_week = dashb.format_published_projects()
        update_projects_last_week = dashb.format_update_projects()
        new_tasks_week = dashb.format_new_tasks()
        new_task_runs_week = dashb.format_new_task_runs()
        new_users_week = dashb.format_new_users()
        returning_users_week = dashb.format_returning_users()
        update_feed = get_update_feed()

        response = dict(
            template='admin/dashboard.html',
            title=gettext('Dashboard'),
            active_users_last_week=active_users_last_week,
            active_anon_last_week=active_anon_last_week,
            draft_projects_last_week=draft_projects_last_week,
            published_projects_last_week=published_projects_last_week,
            update_projects_last_week=update_projects_last_week,
            new_tasks_week=new_tasks_week,
            new_task_runs_week=new_task_runs_week,
            new_users_week=new_users_week,
            returning_users_week=returning_users_week,
            update_feed=update_feed,
            wait=False)
        return handle_content_type(response)
    except ProgrammingError as e:
        response = dict(template='admin/dashboard.html',
                        title=gettext('Dashboard'),
                        wait=True)
        return handle_content_type(response)
    except Exception as e:  # pragma: no cover
        current_app.logger.error(e)
        return abort(500)