def setUp(self):
     self.sponsor = Sponsor.objects.create(name="Sponsor 1")
     self.sponsor2 = Sponsor.objects.create(name="Sponsor 2")
     self.due_trial = makeTrial(self.sponsor,
                                registry_id='due_trial',
                                results_due=True,
                                has_results=False)
     self.reported_trial = makeTrial(self.sponsor,
                                     registry_id='reported_trial',
                                     results_due=True,
                                     has_results=True,
                                     reported_date=date(2016, 12, 1))
     self.qa_submitted_trial = makeTrial(self.sponsor,
                                         registry_id='qa_submitted_trial',
                                         results_due=True)
     self.qa_submitted_trial.trialqa_set.create(
         submitted_to_regulator=date(2016, 12, 1))
     self.cancelled_trial = makeTrial(self.sponsor,
                                      registry_id='cancelled_trial',
                                      results_due=True)
     self.cancelled_trial.trialqa_set.create(
         submitted_to_regulator=date(2016, 12, 1),
         cancelled_by_sponsor=date(2016, 12, 1))
     self.not_due_trial = makeTrial(self.sponsor,
                                    registry_id='not_due_trial',
                                    results_due=False,
                                    has_results=False)
Example #2
0
 def setUp(self, datetime_mock):
     self.mock_today = date(2017, 1, 31)
     datetime_mock.today = Mock(return_value=self.mock_today)
     self.sponsor = Sponsor.objects.create(name="Sponsor 1",
                                           updated_date=self.mock_today)
     self.due_trial = makeTrial(self.sponsor,
                                results_due=True,
                                has_results=False,
                                updated_date=self.mock_today)
     self.reported_trial = makeTrial(
         self.sponsor,
         results_due=True,
         has_results=True,
         # The following has the effect of setting
         # `previous_status` to `overdue` and status to `reported`
         status=Trial.STATUS_OVERDUE,
         reported_date=date(2016, 12, 1),
         updated_date=self.mock_today)
     self.due_but_no_longer_act_trial = makeTrial(
         self.sponsor,
         results_due=True,
         has_results=False,
         previous_status=Trial.STATUS_OVERDUE,
         status=Trial.STATUS_NO_LONGER_ACT,
         updated_date=self.mock_today)
     self.old_no_longer_act_trial = makeTrial(
         self.sponsor,
         results_due=True,
         has_results=False,
         previous_status=Trial.STATUS_OVERDUE,
         status=Trial.STATUS_NO_LONGER_ACT,
         updated_date=date(2016, 1, 1))
     set_current_rankings()
Example #3
0
 def setUp(self, datetime_mock):
     datetime_mock.today = Mock(return_value=date(2017, 1, 31))
     self.sponsor = Sponsor.objects.create(name="Sponsor 1")
     self.due_trial = makeTrial(self.sponsor,
                                results_due=True,
                                has_results=False)
     self.reported_trial = makeTrial(self.sponsor,
                                     results_due=True,
                                     has_results=True,
                                     reported_date=date(2016, 12, 1))
     set_current_rankings()
 def test_trial_ongoing(self):
     trial = makeTrial(self.sponsor,
                       has_results=False,
                       results_due=False,
                       completion_date='2016-01-01')
     self.assertEqual(trial.status, 'ongoing')
     self.assertEqual(trial.calculated_due_date(), date(2016, 12, 31))
 def test_trial_overdue(self):
     trial = makeTrial(self.sponsor,
                       has_results=False,
                       results_due=True,
                       completion_date='2016-01-01')
     self.assertEqual(trial.status, 'overdue')
     self.assertEqual(list(self.sponsor.trial_set.overdue()), [trial])
 def test_unreported_trial_late_outside_grace(self, datetime_mock):
     datetime_mock.today = Mock(return_value=date(2017, 1, 31))
     trial = makeTrial(self.sponsor,
                       has_results=False,
                       results_due=True,
                       completion_date='2016-01-01')
     self.assertEqual(trial.days_late, 31)
 def test_reported_trial_not_late(self):
     trial = makeTrial(self.sponsor,
                       has_results=True,
                       results_due=True,
                       completion_date='2016-01-01',
                       reported_date='2016-12-01')
     self.assertEqual(trial.days_late, None)
 def test_trials_reported_late_is_late(self):
     trial = makeTrial(self.sponsor,
                       has_results=True,
                       results_due=True,
                       completion_date='2016-01-01',
                       reported_date='2017-01-01')
     self.assertEqual(trial.status, 'reported-late')
     self.assertEqual(list(self.sponsor.trial_set.reported_late()), [trial])
 def test_trial_with_certificate_ongoing(self):
     trial = makeTrial(self.sponsor,
                       has_results=False,
                       results_due=False,
                       has_exemption=True,
                       completion_date='2016-01-01')
     self.assertEqual(trial.status, 'ongoing')
     self.assertEqual(trial.calculated_due_date(), date(2019, 1, 1))
 def test_reported_trial_finably_late(self):
     trial = makeTrial(self.sponsor,
                       has_results=True,
                       results_due=True,
                       completion_date='2015-01-01',
                       reported_date='2017-01-01')
     self.assertEqual(trial.days_late, 366)
     self.assertEqual(trial.finable_days_late,
                      366 - Trial.FINES_GRACE_PERIOD)
 def test_trial_under_qa_late(self):
     trial = makeTrial(self.sponsor,
                       has_results=False,
                       results_due=True,
                       completion_date='2016-01-01')
     TrialQA.objects.create(submitted_to_regulator='2017-01-01',
                            returned_to_sponsor=None,
                            trial=trial)
     self.assertEqual(trial.days_late, 1)
 def test_reported_trial_no_longer_late(self):
     trial = makeTrial(self.sponsor,
                       has_results=True,
                       results_due=True,
                       completion_date='2015-01-01',
                       reported_date='2017-01-01')
     trial.results_due = False
     trial.save()
     self.assertEqual(trial.finable_days_late, None)
Example #13
0
 def _makeRankingsForDate(self, target_date):
     with patch('frontend.trial_computer.date') as datetime_mock:
         self.mock_today = target_date
         datetime_mock.today = Mock(return_value=self.mock_today)
         self.sponsor1 = _make_sponsor_with_date(1, self.mock_today)
         self.sponsor2 = _make_sponsor_with_date(2, self.mock_today)
         self.due_trial = makeTrial(self.sponsor1,
                                    registry_id='due trial',
                                    results_due=True,
                                    has_results=False,
                                    updated_date=self.mock_today)
         self.reported_trial = makeTrial(self.sponsor2,
                                         registry_id='reported trial',
                                         results_due=True,
                                         has_results=True,
                                         reported_date=date(2016, 12, 1),
                                         updated_date=self.mock_today)
         set_current_rankings()
 def test_all_variables(self, twitter_mock):
     self.due_trial = makeTrial(
         self.sponsor,
         results_due=True,
         has_results=False,
         updated_date=self.mock_today)
     self.invisible_ongoing_trial = makeTrial(
         self.sponsor,
         results_due=True,
         has_results=False,
         previous_status=Trial.STATUS_ONGOING,
         status=Trial.STATUS_NO_LONGER_ACT,
         updated_date=self.mock_today)
     self.invisible_overdue_trial = makeTrial(
         self.sponsor,
         results_due=True,
         has_results=False,
         previous_status=Trial.STATUS_OVERDUE,
         status=Trial.STATUS_NO_LONGER_ACT,
         updated_date=self.mock_today)
     self.reported_trial = makeTrial(
         self.sponsor,
         results_due=True,
         has_results=True,
         reported_date=date(2016, 12, 1),
         updated_date=self.mock_today)
     for _ in range(3):
         self.late_trial = makeTrial(
             self.sponsor,
             results_due=True,
             has_results=True,
             reported_date=date(2017, 12, 1),
             updated_date=self.mock_today)
     set_current_rankings()
     api = MagicMock(twitter.api.Api, name='api')
     twitter_mock.Api.return_value = api
     out = StringIO()
     call_command('tweet_today', stdout=out)
     api.PostUpdate.assert_called_with(
         'Since our last update, 1 trial became overdue, and 3 trials '
         'reported late. 1 trial reported its results on time. 80% of '
         'all due trials have reported their results.  '
         'https://fdaaa.trialstracker.net/')
 def test_reported_trial_under_qa(self):
     trial = makeTrial(self.sponsor,
                       has_results=False,
                       results_due=True,
                       completion_date='2016-01-01')
     TrialQA.objects.create(submitted_to_regulator='2016-02-01',
                            returned_to_sponsor=None,
                            trial=trial)
     self.assertEqual(trial.status, 'reported')
     self.assertEqual(str(trial.calculated_reported_date()), '2016-02-01')
 def test_trial_under_qa_late_with_cancellation(self, datetime_mock):
     datetime_mock.today = Mock(return_value=date(2017, 3, 1))
     trial = makeTrial(self.sponsor,
                       has_results=False,
                       results_due=True,
                       completion_date='2016-01-01')
     TrialQA.objects.create(submitted_to_regulator='2016-02-01',
                            cancelled_by_sponsor='2016-02-02',
                            trial=trial)
     self.assertEqual(trial.days_late, 60)
     self.assertEqual(trial.finable_days_late, None)
 def test_status_choices(self):
     makeTrial(self.sponsor,
               has_results=False,
               results_due=True,
               completion_date='2016-01-01')
     self.assertEqual(self.sponsor.status_choices(),
                      [('overdue', 'Overdue')])
     self.assertEqual(Trial.objects.status_choices(),
                      [('overdue', 'Overdue')])
     makeTrial(self.sponsor,
               has_results=False,
               results_due=False,
               completion_date='2016-01-01')
     self.assertEqual(self.sponsor.status_choices(), [
         ('overdue', 'Overdue'),
         ('ongoing', 'Ongoing'),
     ])
     self.assertEqual(Trial.objects.status_choices(), [
         ('overdue', 'Overdue'),
         ('ongoing', 'Ongoing'),
     ])
 def test_single_variable(self, twitter_mock):
     self.due_trial = makeTrial(
         self.sponsor,
         results_due=True,
         has_results=False,
         updated_date=self.mock_today)
     set_current_rankings()
     api = MagicMock(twitter.api.Api, name='api')
     twitter_mock.Api.return_value = api
     out = StringIO()
     call_command('tweet_today', stdout=out)
     api.PostUpdate.assert_called_with(
         'Since our last update, 1 trial became overdue. 0% of all due '
         'trials have reported their results.  '
         'https://fdaaa.trialstracker.net/')
 def test_trial_under_qa_late_with_much_correspondence(self):
     trial = makeTrial(self.sponsor,
                       has_results=False,
                       results_due=True,
                       completion_date='2016-01-01')
     TrialQA.objects.create(submitted_to_regulator='2016-02-01',
                            returned_to_sponsor='2016-02-02',
                            trial=trial)
     TrialQA.objects.create(submitted_to_regulator='2016-02-03',
                            cancelled_by_sponsor='2016-02-04',
                            trial=trial)
     TrialQA.objects.create(submitted_to_regulator='2017-03-01',
                            trial=trial)
     self.assertEqual(trial.days_late, 60)
     self.assertEqual(trial.finable_days_late, None)