Exemple #1
0
 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()
Exemple #2
0
    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()
Exemple #6
0
    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()
Exemple #10
0
 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()