def test_raises_invalid_cohort_for_any_metric(self):
        self.cohort.validated = False
        self.session.commit()

        for name, metric in metric_classes.iteritems():
            if not metric.show_in_ui:
                continue

            parameters = {
                'name': '{0} - test'.format(name),
                'cohort': {
                    'id': self.cohort.id,
                    'name': self.cohort.name,
                },
                'metric': {
                    'name': name,
                    'namespaces': [0, 1, 2],
                    'start_date': '2013-01-01 00:00:00',
                    'end_date': '2013-01-02 00:00:00',
                    'individualResults': True,
                    'aggregateResults': False,
                    'aggregateSum': False,
                    'aggregateAverage': False,
                    'aggregateStandardDeviation': False,
                },
            }
            try:
                RunReport(parameters, user_id=self.owner_user_id)
            except InvalidCohort:
                continue
            assert_true(False)
    def test_raises_invalid_cohort_for_any_metric(self):
        self.cohort.validated = False
        self.session.commit()

        for name, metric in metric_classes.iteritems():
            if not metric.show_in_ui:
                continue

            parameters = {
                'name': '{0} - test'.format(name),
                'cohort': {
                    'id': self.cohort.id,
                    'name': self.cohort.name,
                },
                'metric': {
                    'name': name,
                    'namespaces': [0, 1, 2],
                    'start_date': '2013-01-01 00:00:00',
                    'end_date': '2013-01-02 00:00:00',
                    'individualResults': True,
                    'aggregateResults': False,
                    'aggregateSum': False,
                    'aggregateAverage': False,
                    'aggregateStandardDeviation': False,
                },
            }
            try:
                RunReport(parameters, user_id=self.owner_user_id)
            except InvalidCohort:
                continue
            assert_true(False)
 def test_does_not_run_invalid_cohort_for_any_metric(self):
     self.cohort.validated = False
     self.session.commit()
     
     for name, metric in metric_classes.iteritems():
         if not metric.show_in_ui:
             continue
         
         parameters = {
             'name': '{0} - test'.format(name),
             'cohort': {
                 'id': self.cohort.id,
                 'name': self.cohort.name,
             },
             'metric': {
                 'name': name,
                 'namespaces': [0, 1, 2],
                 'start_date': '2013-01-01 00:00:00',
                 'end_date': '2013-01-02 00:00:00',
                 'individualResults': True,
                 'aggregateResults': False,
                 'aggregateSum': False,
                 'aggregateAverage': False,
                 'aggregateStandardDeviation': False,
             },
         }
         jr = RunReport(parameters, user_id=self.owner_user_id)
         results = jr.task.delay(jr).get()
         self.session.commit()
         result_key = self.session.query(PersistentReport) \
             .get(jr.persistent_id) \
             .result_key
         assert_true(
             results[result_key]['FAILURE'].find('ran with invalid cohort') >= 0,
             '{0} ran with invalid cohort'.format(name)
         )