예제 #1
0
    def test_two_reminder(self, mail_mock):
        """ Test the cron job for a meeting with a single reminder to send.
        """
        mail_mock.return_value = None

        # Meeting with a reminder
        remobj = model.Reminder(
            'H-12', '[email protected]', '[email protected],[email protected]',
            'Come to our test meeting')
        remobj.save(self.session)
        self.session.flush()

        date_sa = datetime.utcnow() + timedelta(hours=12)
        date_so = datetime.utcnow() + timedelta(hours=13)

        obj = model.Meeting(  # id:1
            meeting_name='Test meeting with reminder',
            meeting_date=date_sa.date(),
            meeting_date_end=date_so.date(),
            meeting_time_start=date_sa.time(),
            meeting_time_stop=date_so.time(),
            meeting_information='This is a test meeting with reminder',
            calendar_name='test_calendar',
            reminder_id=remobj.reminder_id)
        obj.add_manager(self.session, ['pingou'])
        obj.save(self.session)
        self.session.commit()
        self.assertNotEqual(obj, None)

        msgs = fedocal_cron.send_reminder()

        self.assertEqual(len(msgs), 1)
        self.assertEqual(msgs[0]['To'], '[email protected], [email protected]')
        self.assertEqual(msgs[0]['From'], '[email protected]')
예제 #2
0
    def test_no_reminder(self):
        """ Test the cron job for run with no reminders.
        """
        # Meeting with a reminder but outside the standard offsets
        remobj = model.Reminder(
            'H-12', '*****@*****.**', 'root@localhost',
            'Come to our test meeting')
        remobj.save(self.session)
        self.session.flush()

        date_sa = datetime.utcnow() + timedelta(hours=15)
        date_so = datetime.utcnow() + timedelta(hours=16)

        obj = model.Meeting(  # id:1
            meeting_name='Test meeting with reminder',
            meeting_date=date_sa.date(),
            meeting_date_end=date_so.date(),
            meeting_time_start=date_sa.time(),
            meeting_time_stop=date_so.time(),
            meeting_information='This is a test meeting with reminder',
            calendar_name='test_calendar',
            reminder_id=remobj.reminder_id)
        obj.add_manager(self.session, ['pingou'])
        obj.save(self.session)
        self.session.commit()
        self.assertNotEqual(obj, None)

        msgs = fedocal_cron.send_reminder()

        self.assertEqual(len(msgs), 0)
예제 #3
0
    def test_no_reminder(self):
        """ Test the cron job for run with no reminders.
        """
        # Meeting with a reminder but outside the standard offsets
        remobj = model.Reminder('H-12', '*****@*****.**',
                                'root@localhost', 'Come to our test meeting')
        remobj.save(self.session)
        self.session.flush()

        date_sa = datetime.utcnow() + timedelta(hours=15)
        date_so = datetime.utcnow() + timedelta(hours=16)

        obj = model.Meeting(  # id:1
            meeting_name='Test meeting with reminder',
            meeting_date=date_sa.date(),
            meeting_date_end=date_so.date(),
            meeting_time_start=date_sa.time(),
            meeting_time_stop=date_so.time(),
            meeting_information='This is a test meeting with reminder',
            calendar_name='test_calendar',
            reminder_id=remobj.reminder_id)
        obj.add_manager(self.session, ['pingou'])
        obj.save(self.session)
        self.session.commit()
        self.assertNotEqual(obj, None)

        msgs = fedocal_cron.send_reminder()

        self.assertEqual(len(msgs), 0)
예제 #4
0
    def test_two_reminder(self, mail_mock):
        """ Test the cron job for a meeting with a single reminder to send.
        """
        mail_mock.return_value = None

        # Meeting with a reminder
        remobj = model.Reminder('H-12', '[email protected]',
                                '[email protected],[email protected]',
                                'Come to our test meeting')
        remobj.save(self.session)
        self.session.flush()

        date_sa = datetime.utcnow() + timedelta(hours=12)
        date_so = datetime.utcnow() + timedelta(hours=13)

        obj = model.Meeting(  # id:1
            meeting_name='Test meeting with reminder',
            meeting_date=date_sa.date(),
            meeting_date_end=date_so.date(),
            meeting_time_start=date_sa.time(),
            meeting_time_stop=date_so.time(),
            meeting_information='This is a test meeting with reminder',
            calendar_name='test_calendar',
            reminder_id=remobj.reminder_id)
        obj.add_manager(self.session, ['pingou'])
        obj.save(self.session)
        self.session.commit()
        self.assertNotEqual(obj, None)

        msgs = fedocal_cron.send_reminder()

        self.assertEqual(len(msgs), 1)
        self.assertEqual(msgs[0]['To'], '[email protected], [email protected]')
        self.assertEqual(msgs[0]['From'], '[email protected]')
예제 #5
0
    def test_two_reminder(self, smtp_mock, mail_mock):
        """ Test the cron job for a meeting with a single reminder to send.
        """
        smtp_mock.return_value = FakeSMTP()
        mail_mock.return_value = None

        # Meeting with a reminder
        remobj = model.Reminder('H-12', '[email protected]',
                                '[email protected],[email protected]',
                                'Come to our test meeting')
        remobj.save(self.session)
        self.session.flush()

        date_sa = datetime.utcnow() + timedelta(hours=12)
        date_so = datetime.utcnow() + timedelta(hours=13)

        obj = model.Meeting(  # id:1
            meeting_name='Test meeting with reminder',
            meeting_date=date_sa.date(),
            meeting_date_end=date_so.date(),
            meeting_time_start=date_sa.time(),
            meeting_time_stop=date_so.time(),
            meeting_information='This is a test meeting with reminder',
            calendar_name='test_calendar',
            reminder_id=remobj.reminder_id)
        obj.save(self.session)
        obj.add_manager(self.session, ['pingou'])
        self.session.commit()
        self.assertNotEqual(obj, None)

        with testing.mock_sends(
                api.Message(topic="fedocal.reminder",
                            body={
                                'meeting': {
                                    'meeting_id': 1,
                                    'meeting_name':
                                    'Test meeting with reminder',
                                    'meeting_manager': ['pingou'],
                                    'meeting_date': ANY,
                                    'meeting_date_end': ANY,
                                    'meeting_time_start': ANY,
                                    'meeting_time_stop': ANY,
                                    'meeting_timezone': 'UTC',
                                    'meeting_information':
                                    'This is a test meeting with reminder',
                                    'meeting_location': None,
                                    'calendar_name': 'test_calendar'
                                },
                                'calendar': {
                                    'calendar_name': 'test_calendar',
                                    'calendar_contact': '*****@*****.**',
                                    'calendar_description':
                                    'This is a test calendar',
                                    'calendar_editor_group': 'fi-apprentice',
                                    'calendar_admin_group':
                                    'infrastructure-main2',
                                    'calendar_status': 'Enabled'
                                }
                            })):
            msgs = fedocal_cron.send_reminder()

        self.assertEqual(len(msgs), 1)
        self.assertEqual(msgs[0]['To'], '[email protected], [email protected]')
        self.assertEqual(msgs[0]['From'], '[email protected]')