Ejemplo n.º 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
Ejemplo n.º 2
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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
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]
Ejemplo n.º 8
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]
Ejemplo n.º 9
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'
Ejemplo n.º 10
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"
Ejemplo n.º 11
0
 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'
Ejemplo n.º 12
0
 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
Ejemplo n.º 13
0
 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