Exemplo n.º 1
0
    def _create_with_periodicity(self, per):
        sched = Scheduler(
            report='some-repo',
            periodicity=per,
        )
        sched.save()

        return sched
Exemplo n.º 2
0
    def test_call_must_call_process_from_scheduler(self):
        with mock.patch('onmydesk.models.Scheduler.process') as process_mocked:
            scheduler = Scheduler(report='my_report_class',
                                  periodicity=Scheduler.PER_MON_SUN)
            scheduler.save()

            management.call_command('scheduler_process')

            self.assertTrue(process_mocked.called)
Exemplo n.º 3
0
    def test_call_must_not_out_errors(self):
        scheduler = Scheduler(report='my_report_class',
                              periodicity=Scheduler.PER_MON_SUN)
        scheduler.save()

        errout = StringIO()
        management.call_command('scheduler_process', stderr=errout)

        self.assertEqual(len(errout.getvalue()), 0, errout.getvalue())
Exemplo n.º 4
0
    def test_to_string(self):

        scheduler = Scheduler(report='my_report_class')

        with mock.patch('onmydesk.models.my_import', return_value=self.report_class):
            self.assertEqual(str(scheduler), 'My Report')

            scheduler.save()
            self.assertEqual(str(scheduler), 'My Report #{}'.format(scheduler.id))
Exemplo n.º 5
0
    def test_to_string(self):

        scheduler = Scheduler(report='my_report_class')

        with mock.patch('onmydesk.models.my_import',
                        return_value=self.report_class):
            self.assertEqual(str(scheduler), 'My Report')

            scheduler.save()
            self.assertEqual(str(scheduler),
                             'My Report #{}'.format(scheduler.id))
Exemplo n.º 6
0
    def test_call_must_create_correct_report(self):
        scheduler = Scheduler(report='my_report_class',
                              periodicity=Scheduler.PER_MON_SUN)
        scheduler.save()

        self.assertEqual(Report.objects.all().count(), 0)

        out = StringIO()
        management.call_command('scheduler_process', stdout=out)

        self.assertEqual(Report.objects.all().count(), 1)

        repo = Report.objects.all().first()
        self.assertEqual(repo.report, 'my_report_class')
Exemplo n.º 7
0
    def test_call_must_not_process_schedulers_from_other_day(self):
        # Forcing a date on sunday
        sunday_date = date(2016, 5, 15)
        date_mocked = mock.MagicMock()
        date_mocked.today.return_value = sunday_date
        with mock.patch('onmydesk.management.commands.scheduler_process.date',
                        return_value=date_mocked):
            # Creating a report scheduled to monday
            scheduler = Scheduler(report='my_report_class',
                                  periodicity=Scheduler.PER_MON)
            scheduler.save()

            self.assertEqual(Report.objects.all().count(), 0)
            management.call_command('scheduler_process')
            self.assertEqual(Report.objects.all().count(), 0)
Exemplo n.º 8
0
    def test_call_must_have_first_and_last_message_correct(self):
        scheduler = Scheduler(report='my_report_class',
                              periodicity=Scheduler.PER_MON_SUN)
        scheduler.save()

        out = StringIO()
        management.call_command('scheduler_process', stdout=out)

        first_line, *_, last_line, blank_line = out.getvalue().split('\n')

        first_message = 'Starting scheduler process'
        last_message = 'Scheduler #{} processed'.format(scheduler.id)

        self.assertEqual(first_line, first_message)
        self.assertEqual(last_line, last_message)
Exemplo n.º 9
0
    def _create_with_periodicity(self, per):
        sched = Scheduler(report='some-repo',
                          periodicity=per,)
        sched.save()

        return sched