Пример #1
0
    def test_copy(self):
        """
        Test if it copy scheduled job to another minion or minions.
        """
        comm1 = "no servers answered the published schedule.add command"
        comm2 = "the following minions return False"
        comm3 = "Copied Job job1 from schedule to minion(s)."
        with patch.dict(
            schedule.__opts__, {"schedule": {"job1": JOB1}, "sock_dir": self.sock_dir}
        ):
            mock = MagicMock(return_value=True)
            with patch.dict(schedule.__salt__, {"event.fire": mock}):
                _ret_value = {"complete": True, "schedule": {"job1": {"job1": JOB1}}}
                with patch.object(SaltEvent, "get_event", return_value=_ret_value):
                    mock = MagicMock(return_value={})
                    with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                        self.assertDictEqual(
                            schedule.copy("job1", "minion1"),
                            {"comment": comm1, "result": True},
                        )

                    mock = MagicMock(return_value={"minion1": ""})
                    with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                        self.assertDictEqual(
                            schedule.copy("job1", "minion1"),
                            {"comment": comm2, "minions": ["minion1"], "result": True},
                        )

                    mock = MagicMock(return_value={"minion1": "job1"})
                    with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                        mock = MagicMock(return_value=True)
                        with patch.dict(schedule.__salt__, {"event.fire": mock}):
                            self.assertDictEqual(
                                schedule.copy("job1", "minion1"),
                                {
                                    "comment": comm3,
                                    "minions": ["minion1"],
                                    "result": True,
                                },
                            )

                    self.assertDictEqual(
                        schedule.copy("job3", "minion1"),
                        {"comment": "Job job3 does not exist.", "result": False},
                    )

        mock = MagicMock(side_effect=[{}, {"job1": {}}])
        with patch.dict(
            schedule.__opts__, {"schedule": mock, "sock_dir": self.sock_dir}
        ):
            with patch.dict(schedule.__pillar__, {"schedule": {"job1": JOB1}}):
                mock = MagicMock(return_value=True)
                with patch.dict(schedule.__salt__, {"event.fire": mock}):
                    _ret_value = {
                        "complete": True,
                        "schedule": {"job1": {"job1": JOB1}},
                    }
                    with patch.object(SaltEvent, "get_event", return_value=_ret_value):

                        mock = MagicMock(return_value={})
                        with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                            self.assertDictEqual(
                                schedule.copy("job1", "minion1"),
                                {"comment": comm1, "result": True},
                            )

                        mock = MagicMock(return_value={"minion1": ""})
                        with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                            self.assertDictEqual(
                                schedule.copy("job1", "minion1"),
                                {
                                    "comment": comm2,
                                    "minions": ["minion1"],
                                    "result": True,
                                },
                            )

                        mock = MagicMock(return_value={"minion1": "job1"})
                        with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                            mock = MagicMock(return_value=True)
                            with patch.dict(schedule.__salt__, {"event.fire": mock}):
                                self.assertDictEqual(
                                    schedule.copy("job1", "minion1"),
                                    {
                                        "comment": comm3,
                                        "minions": ["minion1"],
                                        "result": True,
                                    },
                                )
Пример #2
0
    def test_copy(self):
        '''
        Test if it copy scheduled job to another minion or minions.
        '''
        comm1 = 'no servers answered the published schedule.add command'
        comm2 = 'the following minions return False'
        comm3 = 'Copied Job job1 from schedule to minion(s).'
        with patch.dict(schedule.__opts__, {'schedule': {'job1': JOB1}, 'sock_dir': SOCK_DIR}):
            mock = MagicMock(return_value=True)
            with patch.dict(schedule.__salt__, {'event.fire': mock}):
                _ret_value = {'complete': True, 'schedule': {'job1': {'job1': JOB1}}}
                with patch.object(SaltEvent, 'get_event', return_value=_ret_value):
                    mock = MagicMock(return_value={})
                    with patch.dict(schedule.__salt__, {'publish.publish': mock}):
                        self.assertDictEqual(schedule.copy('job1', 'minion1'),
                                             {'comment': comm1, 'result': True})

                    mock = MagicMock(return_value={'minion1': ''})
                    with patch.dict(schedule.__salt__, {'publish.publish': mock}):
                        self.assertDictEqual(schedule.copy('job1', 'minion1'),
                                             {'comment': comm2, 'minions': ['minion1'],
                                              'result': True})

                    mock = MagicMock(return_value={'minion1': 'job1'})
                    with patch.dict(schedule.__salt__, {'publish.publish': mock}):
                        mock = MagicMock(return_value=True)
                        with patch.dict(schedule.__salt__, {'event.fire': mock}):
                            self.assertDictEqual(schedule.copy('job1', 'minion1'),
                                                 {'comment': comm3,
                                                  'minions': ['minion1'],
                                                  'result': True})

                    self.assertDictEqual(schedule.copy('job3', 'minion1'),
                                         {'comment': 'Job job3 does not exist.',
                                          'result': False})

        mock = MagicMock(side_effect=[{}, {'job1': {}}])
        with patch.dict(schedule.__opts__, {'schedule': mock, 'sock_dir': SOCK_DIR}):
            with patch.dict(schedule.__pillar__, {'schedule': {'job1': JOB1}}):
                mock = MagicMock(return_value=True)
                with patch.dict(schedule.__salt__, {'event.fire': mock}):
                    _ret_value = {'complete': True, 'schedule': {'job1': {'job1': JOB1}}}
                    with patch.object(SaltEvent, 'get_event', return_value=_ret_value):

                        mock = MagicMock(return_value={})
                        with patch.dict(schedule.__salt__, {'publish.publish': mock}):
                            self.assertDictEqual(schedule.copy('job1', 'minion1'),
                                                 {'comment': comm1, 'result': True})

                        mock = MagicMock(return_value={'minion1': ''})
                        with patch.dict(schedule.__salt__, {'publish.publish': mock}):
                            self.assertDictEqual(schedule.copy('job1', 'minion1'),
                                                 {'comment': comm2,
                                                  'minions': ['minion1'],
                                                  'result': True})

                        mock = MagicMock(return_value={'minion1': 'job1'})
                        with patch.dict(schedule.__salt__, {'publish.publish': mock}):
                            mock = MagicMock(return_value=True)
                            with patch.dict(schedule.__salt__, {'event.fire': mock}):
                                self.assertDictEqual(schedule.copy('job1', 'minion1'),
                                                     {'comment': comm3,
                                                      'minions': ['minion1'],
                                                      'result': True})
Пример #3
0
    def test_copy(self):
        '''
        Test if it copy scheduled job to another minion or minions.
        '''
        comm1 = 'no servers answered the published schedule.add command'
        comm2 = 'the following minions return False'
        comm3 = 'Copied Job job1 from schedule to minion(s).'
        with patch.dict(schedule.__opts__, {
                'schedule': {
                    'job1': JOB1
                },
                'sock_dir': SOCK_DIR
        }):
            mock = MagicMock(return_value=True)
            with patch.dict(schedule.__salt__, {'event.fire': mock}):
                _ret_value = {
                    'complete': True,
                    'schedule': {
                        'job1': {
                            'job1': JOB1
                        }
                    }
                }
                with patch.object(SaltEvent,
                                  'get_event',
                                  return_value=_ret_value):
                    mock = MagicMock(return_value={})
                    with patch.dict(schedule.__salt__,
                                    {'publish.publish': mock}):
                        self.assertDictEqual(schedule.copy('job1', 'minion1'),
                                             {
                                                 'comment': comm1,
                                                 'result': True
                                             })

                    mock = MagicMock(return_value={'minion1': ''})
                    with patch.dict(schedule.__salt__,
                                    {'publish.publish': mock}):
                        self.assertDictEqual(
                            schedule.copy('job1', 'minion1'), {
                                'comment': comm2,
                                'minions': ['minion1'],
                                'result': True
                            })

                    mock = MagicMock(return_value={'minion1': 'job1'})
                    with patch.dict(schedule.__salt__,
                                    {'publish.publish': mock}):
                        mock = MagicMock(return_value=True)
                        with patch.dict(schedule.__salt__,
                                        {'event.fire': mock}):
                            self.assertDictEqual(
                                schedule.copy('job1', 'minion1'), {
                                    'comment': comm3,
                                    'minions': ['minion1'],
                                    'result': True
                                })

                    self.assertDictEqual(schedule.copy('job3', 'minion1'), {
                        'comment': 'Job job3 does not exist.',
                        'result': False
                    })

        mock = MagicMock(side_effect=[{}, {'job1': {}}])
        with patch.dict(schedule.__opts__, {
                'schedule': mock,
                'sock_dir': SOCK_DIR
        }):
            with patch.dict(schedule.__pillar__, {'schedule': {'job1': JOB1}}):
                mock = MagicMock(return_value=True)
                with patch.dict(schedule.__salt__, {'event.fire': mock}):
                    _ret_value = {
                        'complete': True,
                        'schedule': {
                            'job1': {
                                'job1': JOB1
                            }
                        }
                    }
                    with patch.object(SaltEvent,
                                      'get_event',
                                      return_value=_ret_value):

                        mock = MagicMock(return_value={})
                        with patch.dict(schedule.__salt__,
                                        {'publish.publish': mock}):
                            self.assertDictEqual(
                                schedule.copy('job1', 'minion1'), {
                                    'comment': comm1,
                                    'result': True
                                })

                        mock = MagicMock(return_value={'minion1': ''})
                        with patch.dict(schedule.__salt__,
                                        {'publish.publish': mock}):
                            self.assertDictEqual(
                                schedule.copy('job1', 'minion1'), {
                                    'comment': comm2,
                                    'minions': ['minion1'],
                                    'result': True
                                })

                        mock = MagicMock(return_value={'minion1': 'job1'})
                        with patch.dict(schedule.__salt__,
                                        {'publish.publish': mock}):
                            mock = MagicMock(return_value=True)
                            with patch.dict(schedule.__salt__,
                                            {'event.fire': mock}):
                                self.assertDictEqual(
                                    schedule.copy('job1', 'minion1'), {
                                        'comment': comm3,
                                        'minions': ['minion1'],
                                        'result': True
                                    })
Пример #4
0
    def test_save(self):
        """
        Test if it save all scheduled jobs on the minion.
        '''
        comm1 = 'Schedule (non-pillar items) saved.'
        with patch.dict(schedule.__opts__, {'schedule': {},
                                            'default_include': '/tmp',
                                            'sock_dir': self.sock_dir}):

            mock = MagicMock(return_value=True)
            with patch.dict(schedule.__salt__, {"event.fire": mock}):
                _ret_value = {"complete": True, "schedule": {}}
                with patch.object(SaltEvent, "get_event", return_value=_ret_value):
                    self.assertDictEqual(
                        schedule.save(), {"comment": comm1, "result": True}
                    )

    # 'enable' function tests: 1

    def test_enable(self):
        """
        Test if it enable all scheduled jobs on the minion.
        """
        self.assertDictEqual(
            schedule.enable(test=True),
            {"comment": "Schedule would be enabled.", "result": True},
        )

    # 'disable' function tests: 1

    def test_disable(self):
        """
        Test if it disable all scheduled jobs on the minion.
        """
        self.assertDictEqual(
            schedule.disable(test=True),
            {"comment": "Schedule would be disabled.", "result": True},
        )

    # 'move' function tests: 1

    @skipIf(True, "SLOWTEST skip")
    def test_move(self):
        """
        Test if it move scheduled job to another minion or minions.
        '''
        comm1 = 'no servers answered the published schedule.add command'
        comm2 = 'the following minions return False'
        comm3 = 'Moved Job job1 from schedule.'
        with patch.dict(schedule.__opts__, {'schedule': {'job1': JOB1}, 'sock_dir': self.sock_dir}):
            mock = MagicMock(return_value=True)
            with patch.dict(schedule.__salt__, {"event.fire": mock}):
                _ret_value = {"complete": True, "schedule": {"job1": JOB1}}
                with patch.object(SaltEvent, "get_event", return_value=_ret_value):
                    mock = MagicMock(return_value={})
                    with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                        self.assertDictEqual(
                            schedule.move("job1", "minion1"),
                            {"comment": comm1, "result": True},
                        )

                    mock = MagicMock(return_value={"minion1": ""})
                    with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                        self.assertDictEqual(
                            schedule.move("job1", "minion1"),
                            {"comment": comm2, "minions": ["minion1"], "result": True},
                        )

                    mock = MagicMock(return_value={"minion1": "job1"})
                    with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                        mock = MagicMock(return_value=True)
                        with patch.dict(schedule.__salt__, {'event.fire': mock}):
                            self.assertDictEqual(schedule.move('job1', 'minion1'),
                                                 {'comment': comm3,
                                                  'minions': ['minion1'],
                                                  'result': True})

                    self.assertDictEqual(schedule.move('job3', 'minion1'),
                                         {'comment': 'Job job3 does not exist.',
                                          'result': False})

        mock = MagicMock(side_effect=[{}, {'job1': {}}])
        with patch.dict(schedule.__opts__, {'schedule': mock, 'sock_dir': self.sock_dir}):
            mock = MagicMock(return_value=True)
            with patch.dict(schedule.__salt__, {"event.fire": mock}):
                _ret_value = {"complete": True, "schedule": {"job1": JOB1}}
                with patch.object(SaltEvent, "get_event", return_value=_ret_value):
                    with patch.dict(schedule.__pillar__, {"schedule": {"job1": JOB1}}):
                        mock = MagicMock(return_value={})
                        with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                            self.assertDictEqual(
                                schedule.move("job1", "minion1"),
                                {"comment": comm1, "result": True},
                            )

                        mock = MagicMock(return_value={"minion1": ""})
                        with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                            self.assertDictEqual(
                                schedule.move("job1", "minion1"),
                                {
                                    "comment": comm2,
                                    "minions": ["minion1"],
                                    "result": True,
                                },
                            )

                        mock = MagicMock(return_value={"minion1": "job1"})
                        with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                            mock = MagicMock(return_value=True)
                            with patch.dict(schedule.__salt__, {"event.fire": mock}):
                                self.assertDictEqual(
                                    schedule.move("job1", "minion1"),
                                    {
                                        "comment": comm3,
                                        "minions": ["minion1"],
                                        "result": True,
                                    },
                                )

    # 'copy' function tests: 1

    @skipIf(True, "SLOWTEST skip")
    def test_copy(self):
        """
        Test if it copy scheduled job to another minion or minions.
        '''
        comm1 = 'no servers answered the published schedule.add command'
        comm2 = 'the following minions return False'
        comm3 = 'Copied Job job1 from schedule to minion(s).'
        with patch.dict(schedule.__opts__, {'schedule': {'job1': JOB1}, 'sock_dir': self.sock_dir}):
            mock = MagicMock(return_value=True)
            with patch.dict(schedule.__salt__, {"event.fire": mock}):
                _ret_value = {"complete": True, "schedule": {"job1": {"job1": JOB1}}}
                with patch.object(SaltEvent, "get_event", return_value=_ret_value):
                    mock = MagicMock(return_value={})
                    with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                        self.assertDictEqual(
                            schedule.copy("job1", "minion1"),
                            {"comment": comm1, "result": True},
                        )

                    mock = MagicMock(return_value={"minion1": ""})
                    with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                        self.assertDictEqual(
                            schedule.copy("job1", "minion1"),
                            {"comment": comm2, "minions": ["minion1"], "result": True},
                        )

                    mock = MagicMock(return_value={"minion1": "job1"})
                    with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                        mock = MagicMock(return_value=True)
                        with patch.dict(schedule.__salt__, {'event.fire': mock}):
                            self.assertDictEqual(schedule.copy('job1', 'minion1'),
                                                 {'comment': comm3,
                                                  'minions': ['minion1'],
                                                  'result': True})

                    self.assertDictEqual(schedule.copy('job3', 'minion1'),
                                         {'comment': 'Job job3 does not exist.',
                                          'result': False})

        mock = MagicMock(side_effect=[{}, {'job1': {}}])
        with patch.dict(schedule.__opts__, {'schedule': mock, 'sock_dir': self.sock_dir}):
            with patch.dict(schedule.__pillar__, {'schedule': {'job1': JOB1}}):
                mock = MagicMock(return_value=True)
                with patch.dict(schedule.__salt__, {"event.fire": mock}):
                    _ret_value = {
                        "complete": True,
                        "schedule": {"job1": {"job1": JOB1}},
                    }
                    with patch.object(SaltEvent, "get_event", return_value=_ret_value):

                        mock = MagicMock(return_value={})
                        with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                            self.assertDictEqual(
                                schedule.copy("job1", "minion1"),
                                {"comment": comm1, "result": True},
                            )

                        mock = MagicMock(return_value={"minion1": ""})
                        with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                            self.assertDictEqual(
                                schedule.copy("job1", "minion1"),
                                {
                                    "comment": comm2,
                                    "minions": ["minion1"],
                                    "result": True,
                                },
                            )

                        mock = MagicMock(return_value={"minion1": "job1"})
                        with patch.dict(schedule.__salt__, {"publish.publish": mock}):
                            mock = MagicMock(return_value=True)
                            with patch.dict(schedule.__salt__, {"event.fire": mock}):
                                self.assertDictEqual(
                                    schedule.copy("job1", "minion1"),
                                    {
                                        "comment": comm3,
                                        "minions": ["minion1"],
                                        "result": True,
                                    },
                                )