def setUp(self): DatabaseTest.setUp(self) self.reports = [ ReportStore(public=False, recurrent=False, user_id=1), ReportStore(public=True, recurrent=False, user_id=1), ReportStore(public=False, recurrent=True, user_id=1), ReportStore(public=True, recurrent=True, user_id=1), ] self.session.add_all(self.reports) self.session.commit()
def test_db_session_always_fresh(self): s = db.get_session() try: r = ReportStore() s.add(r) s.commit() r.id = None s.commit() except: pass # if the session is not cleaned up properly, this will throw an exception s = db.get_session() s.execute('select 1').fetchall() s = db.get_mw_session(mediawiki_project) try: u = MediawikiUser() s.add(u) s.commit() u.user_id = None s.commit() except: pass # if the session is not cleaned up properly, this will throw an exception s = db.get_mw_session(mediawiki_project) s.execute('select 1').fetchall()
def test_task_error_repr(self): pr = ReportStore(status=celery.states.PENDING) self.session.add(pr) self.session.commit() te = TaskErrorStore(task_type='report', task_id=pr.id, message='m', traceback='t', count=1) self.session.add(te) self.session.commit() row = self.session.query(TaskErrorStore).first() assert_true(str(row).find('TaskErrorStore') >= 0)
def test_task_error(self): pr = ReportStore(status=celery.states.PENDING) self.session.add(pr) self.session.commit() te = TaskErrorStore(task_type='report', task_id=pr.id, message='m', traceback='t', count=1) self.session.add(te) self.session.commit() row = self.session.query(TaskErrorStore).first() assert_equal(row.task_type, 'report') assert_equal(row.task_id, pr.id) assert_equal(row.message, 'm') assert_equal(row.traceback, 't') assert_equal(row.count, 1)
def add_runs_to_report(self, index): p = self.p self.report_runs = [] for d in range(0, self.no_more_than + 10): day = self.today - timedelta(days=d) p['metric']['start_date'] = day - timedelta(days=1) p['metric']['end_date'] = day p['recurrent'] = False ps = stringify(p) if d not in (self.missed_by_index[index] ) and d < self.ago_by_index[index]: self.report_runs.append( ReportStore( recurrent_parent_id=self.reports[index].id, created=day, status='SUCCESS', parameters=ps, user_id=self.uid, )) self.session.add_all(self.report_runs) self.session.commit()
def setUp(self): ControllerAsyncTest.setUp(self) # add reports just for testing report_created = ReportStore(user_id=self.owner_user_id, status=celery.states.PENDING, queue_result_key=None, show_in_ui=True) report_started = ReportStore(user_id=self.owner_user_id, status=celery.states.STARTED, queue_result_key=None, show_in_ui=True) report_started2 = ReportStore(user_id=self.owner_user_id, status=celery.states.STARTED, queue_result_key=None, show_in_ui=True) report_finished = ReportStore(user_id=self.owner_user_id, status=celery.states.SUCCESS, queue_result_key=None, show_in_ui=True) report_recurrent = ReportStore(user_id=self.owner_user_id, status=celery.states.SUCCESS, queue_result_key=None, show_in_ui=True, recurrent=True) self.past_date = date.today() - timedelta(days=60) report_recurrent_two_months_ago = ReportStore( user_id=self.owner_user_id, status=celery.states.SUCCESS, queue_result_key=None, show_in_ui=True, created=self.past_date, recurrent=True) self.session.add_all([ report_created, report_started, report_started2, report_finished, report_recurrent, report_recurrent_two_months_ago, ]) self.session.commit()
def test_report(self): pr = ReportStore(status=celery.states.PENDING) self.session.add(pr) self.session.commit() row = self.session.query(ReportStore).get(pr.id) assert_equal(row.status, celery.states.PENDING)
def test_report_repr(self): pr = ReportStore(status=celery.states.PENDING) self.session.add(pr) self.session.commit() row = self.session.query(ReportStore).get(pr.id) assert_true(str(row).find('ReportStore') >= 0)
def setUp(self): DatabaseTest.setUp(self) # turn off the scheduler for this test self.save_schedule = queue.conf['CELERYBEAT_SCHEDULE'] queue.conf['CELERYBEAT_SCHEDULE'] = {} self.common_cohort_1() self.uid = self.owner_user_id self.today = strip_time(datetime.today()) # NOTE: running with 20 just makes the tests run faster, but any value > 11 works self.no_more_than = 20 self.missed_by_index = { 0: [1, 2, 11], 1: [1, 2, 11, self.no_more_than + 1, self.no_more_than + 3], 2: [1, 2], 3: range(0, self.no_more_than + 10), } self.ago_by_index = { 0: 26, 1: self.no_more_than + 10, 2: 6, 3: self.no_more_than + 10 } age = { i: self.today - timedelta(days=v - 1) for i, v in self.ago_by_index.items() } self.p = { 'metric': { 'start_date': age[0], 'end_date': self.today, 'name': 'NamespaceEdits', }, 'recurrent': True, 'cohort': { 'id': self.cohort.id, 'name': self.cohort.name }, 'name': 'test-recurrent-reports', } ps = stringify(self.p) self.reports = [ ReportStore(recurrent=True, created=age[0], parameters=ps, user_id=self.uid), ReportStore(recurrent=True, created=age[1], parameters=ps, user_id=self.uid), ReportStore(recurrent=True, created=age[2], parameters=ps, user_id=self.uid), ReportStore(recurrent=True, created=age[3], parameters=ps, user_id=self.uid), ] self.session.add_all(self.reports) self.session.commit()
def test_get_celery_task_result_when_empty(self): mock_report = ReportStore() failure = mock_report.get_result_safely('') assert_equal(failure['failure'], 'result not available')
def setUp(self): DatabaseTest.setUp(self) self.report = ReportStore(status=celery.states.PENDING) self.session.add(self.report) self.session.commit()