def test_minion_manage_schedule(self): ''' Tests that the manage_schedule will call the add function, adding schedule data into opts. ''' with patch('salt.minion.Minion.ctx', MagicMock(return_value={})), \ patch('salt.minion.Minion.sync_connect_master', MagicMock(side_effect=RuntimeError('stop execution'))), \ patch('salt.utils.process.SignalHandlingMultiprocessingProcess.start', MagicMock(return_value=True)), \ patch('salt.utils.process.SignalHandlingMultiprocessingProcess.join', MagicMock(return_value=True)): mock_opts = self.get_config('minion', from_scratch=True) io_loop = tornado.ioloop.IOLoop() io_loop.make_current() with patch('salt.utils.schedule.clean_proc_dir', MagicMock(return_value=None)): mock_functions = {'test.ping': None} minion = salt.minion.Minion(mock_opts, io_loop=io_loop) minion.schedule = salt.utils.schedule.Schedule(mock_opts, mock_functions, returners={}) schedule_data = {'test_job': {'function': 'test.ping', 'return_job': False, 'jid_include': True, 'maxrunning': 2, 'seconds': 10}} data = {'name': 'test-item', 'schedule': schedule_data, 'func': 'add'} tag = 'manage_schedule' minion.manage_schedule(tag, data) self.assertIn('test_job', minion.opts['schedule'])
def test_minion_manage_schedule(): """ Tests that the manage_schedule will call the add function, adding schedule data into opts. """ with patch("salt.minion.Minion.ctx", MagicMock(return_value={})), patch( "salt.minion.Minion.sync_connect_master", MagicMock(side_effect=RuntimeError("stop execution")), ), patch( "salt.utils.process.SignalHandlingProcess.start", MagicMock(return_value=True), ), patch( "salt.utils.process.SignalHandlingProcess.join", MagicMock(return_value=True), ): mock_opts = salt.config.DEFAULT_MINION_OPTS.copy() io_loop = salt.ext.tornado.ioloop.IOLoop() io_loop.make_current() with patch("salt.utils.schedule.clean_proc_dir", MagicMock(return_value=None)): try: mock_functions = {"test.ping": None} minion = salt.minion.Minion(mock_opts, io_loop=io_loop) minion.schedule = salt.utils.schedule.Schedule( mock_opts, mock_functions, returners={}, new_instance=True, ) minion.opts["foo"] = "bar" schedule_data = { "test_job": { "function": "test.ping", "return_job": False, "jid_include": True, "maxrunning": 2, "seconds": 10, } } data = { "name": "test-item", "schedule": schedule_data, "func": "add", "persist": False, } tag = "manage_schedule" minion.manage_schedule(tag, data) assert "test_job" in minion.opts["schedule"] finally: del minion.schedule minion.destroy() del minion
def test_minion_manage_schedule(self): """ Tests that the manage_schedule will call the add function, adding schedule data into opts. """ with patch( "salt.minion.Minion.ctx", MagicMock(return_value={}) ), patch( "salt.minion.Minion.sync_connect_master", MagicMock(side_effect=RuntimeError("stop execution")), ), patch( "salt.utils.process.SignalHandlingMultiprocessingProcess.start", MagicMock(return_value=True), ), patch( "salt.utils.process.SignalHandlingMultiprocessingProcess.join", MagicMock(return_value=True), ): mock_opts = self.get_config("minion", from_scratch=True) io_loop = salt.ext.tornado.ioloop.IOLoop() io_loop.make_current() with patch("salt.utils.schedule.clean_proc_dir", MagicMock(return_value=None)): mock_functions = {"test.ping": None} minion = salt.minion.Minion(mock_opts, io_loop=io_loop) minion.schedule = salt.utils.schedule.Schedule(mock_opts, mock_functions, returners={}) schedule_data = { "test_job": { "function": "test.ping", "return_job": False, "jid_include": True, "maxrunning": 2, "seconds": 10, } } data = { "name": "test-item", "schedule": schedule_data, "func": "add" } tag = "manage_schedule" minion.manage_schedule(tag, data) self.assertIn("test_job", minion.opts["schedule"])