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_returning_users(self): """Test JOB dashboard returns number of returning users.""" task_run = TaskRunFactory.create() day = datetime.utcnow() - timedelta(days=1) TaskRunFactory.create(finish_time=day.isoformat()) returning_users_week() sql = "select * from dashboard_week_returning_users;" results = db.session.execute(sql) for row in results: assert row.n_days == 2 assert row.user_id == task_run.user_id
def test_returning_users(self): """Test JOB dashboard returns number of returning users.""" once_only_user = UserFactory.create() returning_user = UserFactory.create() TaskRunFactory.create(user=once_only_user) TaskRunFactory.create(user=returning_user) task_run = TaskRunFactory.create(user=returning_user) day = datetime.utcnow() - timedelta(days=1) TaskRunFactory.create(user=returning_user, finish_time=day.isoformat()) returning_users_week() sql = "select * from dashboard_week_returning_users;" results = db.session.execute(sql).fetchall() assert results[0].n_days == 2 assert results[0].user_id == task_run.user_id
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 test_materialized_view_refreshed(self, db_mock): """Test JOB dashboard materialized view is refreshed.""" result = MagicMock() result.exists = True results = [result] db_mock.slave_session.execute.return_value = results res = returning_users_week() assert db_mock.session.execute.called assert res == 'Materialized view refreshed'
def test_materialized_view_refreshed(self, db_mock): """Test JOB dashboard materialized view is refreshed.""" result = MagicMock() result.exists = True results = [result] db_mock.slave_session.execute.return_value = results res = returning_users_week() assert db_mock.session.execute.called assert res == "Materialized view refreshed"
def test_materialized_view_created(self, db_mock): """Test JOB dashboard materialized view is created.""" result = MagicMock() result.exists = False results = [result] db_mock.slave_session.execute.return_value = results res = returning_users_week() assert db_mock.session.commit.called assert res == 'Materialized view created'
def test_admin_dashboard_admin_user_data(self): """Test ADMIN dashboard admins can access it with data""" url = '/admin/dashboard/' self.register() self.new_project() self.new_task(1) import pybossa.dashboard.jobs as dashboard dashboard.active_anon_week() dashboard.active_users_week() dashboard.new_users_week() dashboard.new_tasks_week() dashboard.new_task_runs_week() dashboard.new_projects_week() dashboard.update_projects_week() dashboard.returning_users_week() res = self.app.get(url, follow_redirects=True) err_msg = "It should return 200" assert res.status_code == 200, err_msg assert "No data" not in res.data, res.data assert "New Users" in res.data, res.data