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