def test_disable_job(self): ''' Tests disabling a job ''' self.schedule.opts = {'schedule': {'name': {'enabled': 'foo'}}} Schedule.disable_job(self.schedule, 'name') self.assertFalse(self.schedule.opts['schedule']['name']['enabled'])
def test_enable_job(schedule): """ Tests enabling a job """ schedule.opts.update({"schedule": {"name": {"enabled": "foo"}}}) Schedule.enable_job(schedule, "name") assert schedule.opts["schedule"]["name"]["enabled"]
def test_disable_job(self): ''' Tests disabling a job ''' self.schedule.opts.update({'schedule': {'name': {'enabled': 'foo'}}}) Schedule.disable_job(self.schedule, 'name') self.assertFalse(self.schedule.opts['schedule']['name']['enabled'])
def test_disable_job_pillar(self): ''' Tests disabling a job in pillar ''' self.schedule.opts.update({'pillar': {'schedule': {'name': {'enabled': 'foo'}}}}) Schedule.disable_job(self.schedule, 'name', persist=False, where='pillar') self.assertFalse(self.schedule.opts['pillar']['schedule']['name']['enabled'])
def test_enable_job_pillar(self): ''' Tests ignoring enable a job from pillar ''' self.schedule.opts.update({'pillar': {'schedule': {'name': {'enabled': False}}}}) Schedule.enable_job(self.schedule, 'name', persist=False) self.assertFalse(self.schedule.opts['pillar']['schedule']['name']['enabled'])
def test_enable_schedule(self): ''' Tests enabling the scheduler ''' self.schedule.opts = {'schedule': {'enabled': 'foo'}} Schedule.enable_schedule(self.schedule) self.assertTrue(self.schedule.opts['schedule']['enabled'])
def test_add_job(self): ''' Tests adding a job to the schedule ''' data = {'foo': {'bar': 'baz'}} ret = { 'schedule': { 'foo': { 'bar': 'baz', 'enabled': True }, 'hello': { 'world': 'peace', 'enabled': True } } } self.schedule.opts = { 'schedule': { 'hello': { 'world': 'peace', 'enabled': True } }, 'sock_dir': SOCK_DIR } Schedule.add_job(self.schedule, data) del self.schedule.opts['sock_dir'] self.assertEqual(self.schedule.opts, ret)
def test_disable_job_pillar(self): ''' Tests ignoring disable a job in pillar ''' self.schedule.opts.update({'pillar': {'schedule': {'name': {'enabled': True}}}, 'schedule': {}}) Schedule.disable_job(self.schedule, 'name', persist=False) self.assertTrue(self.schedule.opts['pillar']['schedule']['name']['enabled'])
def test_enable_job(self): ''' Tests enabling a job ''' self.schedule.opts = {'schedule': {'name': {'enabled': 'foo'}}} Schedule.enable_job(self.schedule, 'name') self.assertTrue(self.schedule.opts['schedule']['name']['enabled'])
def test_enable_job_pillar(self): ''' Tests enabling a job in pillar ''' self.schedule.opts = {'pillar': {'schedule': {'name': {'enabled': 'foo'}}}} Schedule.enable_job(self.schedule, 'name', where='pillar') self.assertTrue(self.schedule.opts['pillar']['schedule']['name']['enabled'])
def test_add_job(self): ''' Tests adding a job to the schedule ''' data = {'foo': {'bar': 'baz'}} ret = copy.deepcopy(self.schedule.opts) ret.update({ 'schedule': { 'foo': { 'bar': 'baz', 'enabled': True }, 'hello': { 'world': 'peace', 'enabled': True } }, 'pillar': {} }) self.schedule.opts.update({ 'schedule': { 'hello': { 'world': 'peace', 'enabled': True } }, 'pillar': {} }) Schedule.add_job(self.schedule, data) self.assertEqual(self.schedule.opts, ret)
def test_enable_job(self): ''' Tests enabling a job ''' self.schedule.opts.update({'schedule': {'name': {'enabled': 'foo'}}}) Schedule.enable_job(self.schedule, 'name') self.assertTrue(self.schedule.opts['schedule']['name']['enabled'])
def test_disable_schedule(self): ''' Tests disabling the scheduler ''' self.schedule.opts.update({'schedule': {'enabled': 'foo'}}) Schedule.disable_schedule(self.schedule) self.assertFalse(self.schedule.opts['schedule']['enabled'])
def test_enable_job(self): """ Tests enabling a job """ self.schedule.opts.update({"schedule": {"name": {"enabled": "foo"}}}) Schedule.enable_job(self.schedule, "name") self.assertTrue(self.schedule.opts["schedule"]["name"]["enabled"])
def test_add_job(schedule): """ Tests adding a job to the schedule """ data = {"foo": {"bar": "baz"}} ret = copy.deepcopy(schedule.opts) ret.update({ "schedule": { "foo": { "bar": "baz", "enabled": True }, "hello": { "world": "peace", "enabled": True }, }, "pillar": {}, }) schedule.opts.update({ "schedule": { "hello": { "world": "peace", "enabled": True } }, "pillar": {} }) Schedule.add_job(schedule, data) assert schedule.opts == ret
def test_disable_schedule(self): ''' Tests disabling the scheduler ''' self.schedule.opts = {'schedule': {'enabled': 'foo'}} Schedule.disable_schedule(self.schedule) self.assertFalse(self.schedule.opts['schedule']['enabled'])
def test_disable_job(self): ''' Tests disabling a job ''' self.schedule.opts.update({'schedule': {'name': {'enabled': 'foo'}}, 'pillar': {}}) Schedule.disable_job(self.schedule, 'name') self.assertFalse(self.schedule.opts['schedule']['name']['enabled'])
def test_disable_schedule(self): ''' Tests disabling the scheduler ''' self.schedule.opts.update({'schedule': {'enabled': 'foo'}, 'pillar': {}}) Schedule.disable_schedule(self.schedule) self.assertFalse(self.schedule.opts['schedule']['enabled'])
def test_disable_job_pillar(self): ''' Tests disabling a job in pillar ''' self.schedule.opts.update({'pillar': {'schedule': {'name': {'enabled': 'foo'}}}}) Schedule.disable_job(self.schedule, 'name', persist=False, where='pillar') del self.schedule.opts['sock_dir'] self.assertFalse(self.schedule.opts['pillar']['schedule']['name']['enabled'])
def test_enable_schedule(self): ''' Tests enabling the scheduler ''' self.schedule.opts.update({'schedule': {'enabled': 'foo'}}) Schedule.enable_schedule(self.schedule) del self.schedule.opts['sock_dir'] self.assertTrue(self.schedule.opts['schedule']['enabled'])
def test_enable_job(self): ''' Tests enabling a job ''' self.schedule.opts = {'schedule': {'name': {'enabled': 'foo'}}, 'sock_dir': SOCK_DIR} Schedule.enable_job(self.schedule, 'name') del self.schedule.opts['sock_dir'] self.assertTrue(self.schedule.opts['schedule']['name']['enabled'])
def test_disable_job_pillar(self): ''' Tests disabling a job in pillar ''' self.schedule.opts = {'pillar': {'schedule': {'name': {'enabled': 'foo'}}}, 'sock_dir': SOCK_DIR} Schedule.disable_job(self.schedule, 'name', where='pillar') del self.schedule.opts['sock_dir'] self.assertFalse(self.schedule.opts['pillar']['schedule']['name']['enabled'])
def test_modify_job(self): ''' Tests modifying a job in the scheduler ''' schedule = {'schedule': {'foo': 'bar'}} ret = {'schedule': {'foo': 'bar', 'name': {'schedule': {'foo': 'bar'}}}} self.schedule.opts = {'schedule': {'foo': 'bar'}} Schedule.modify_job(self.schedule, 'name', schedule) self.assertEqual(self.schedule.opts, ret)
def test_reload_schedule_in_saved_but_not_opts(self): ''' Tests reloading the schedule from saved schedule that contains a schedule key, but self.schedule.opts does not ''' saved = {'schedule': {'foo': 'bar'}} ret = {'schedule': {'schedule': {'foo': 'bar'}}} Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret)
def test_modify_job_pillar(self): ''' Tests ignoring modification of job from pillar ''' schedule = {'foo': 'bar'} self.schedule.opts.update({'schedule': {}, 'pillar': {'schedule': {'name': 'baz'}}}) ret = copy.deepcopy(self.schedule.opts) Schedule.modify_job(self.schedule, 'name', schedule, persist=False) self.assertEqual(self.schedule.opts, ret)
def test_disable_schedule(self): ''' Tests disabling the scheduler ''' self.schedule.opts = {'schedule': {'enabled': 'foo'}, 'sock_dir': SOCK_DIR} Schedule.disable_schedule(self.schedule) del self.schedule.opts['sock_dir'] self.assertFalse(self.schedule.opts['schedule']['enabled'])
def test_add_job(self): ''' Tests adding a job to the schedule ''' data = {'foo': 'bar'} ret = {'schedule': {'foo': 'bar', 'hello': 'world'}} self.schedule.opts = {'schedule': {'hello': 'world'}} Schedule.add_job(self.schedule, data) self.assertEqual(self.schedule.opts, ret)
def test_modify_job_pillar(self): ''' Tests modifying a job in the scheduler in pillar ''' schedule = {'foo': 'bar'} ret = {'pillar': {'schedule': {'name': {'foo': 'bar'}}}} self.schedule.opts = {'pillar': {'schedule': {'name': {'foo': 'bar'}}}} Schedule.modify_job(self.schedule, 'name', schedule, where='pillar') self.assertEqual(self.schedule.opts, ret)
def test_reload_no_schedule_in_opts(self): ''' Tests reloading the schedule from saved schedule that does not contain a schedule key and neither does self.schedule.opts ''' saved = {'foo': 'bar'} ret = {'schedule': {'foo': 'bar'}} Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret)
def test_disable_job_pillar(self): ''' Tests disabling a job in pillar ''' self.schedule.opts = {'pillar': {'schedule': {'name': {'enabled': 'foo'}}}, 'sock_dir': SOCK_DIR} Schedule.disable_job(self.schedule, 'name', persist=False, where='pillar') del self.schedule.opts['sock_dir'] self.assertFalse(self.schedule.opts['pillar']['schedule']['name']['enabled'])
def test_modify_job_not_exists(self): ''' Tests modifying a job in the scheduler if jobs not exists ''' schedule = {'foo': 'bar'} self.schedule.opts.update({'schedule': {}, 'pillar': {}}) ret = copy.deepcopy(self.schedule.opts) ret.update({'schedule': {'name': {'foo': 'bar'}}}) Schedule.modify_job(self.schedule, 'name', schedule) self.assertEqual(self.schedule.opts, ret)
def test_reload_update_schedule_key(self): ''' Tests reloading the schedule from saved schedule where both the saved schedule and self.schedule.opts contain a schedule key ''' saved = {'schedule': {'foo': 'bar'}} ret = {'schedule': {'foo': 'bar', 'hello': 'world'}} self.schedule.opts = {'schedule': {'hello': 'world'}} Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret)
def test_modify_job_not_exists(self): """ Tests modifying a job in the scheduler if jobs not exists """ schedule = {"foo": "bar"} self.schedule.opts.update({"schedule": {}, "pillar": {}}) ret = copy.deepcopy(self.schedule.opts) ret.update({"schedule": {"name": {"foo": "bar"}}}) Schedule.modify_job(self.schedule, "name", schedule) self.assertEqual(self.schedule.opts, ret)
def test_modify_job(self): ''' Tests modifying a job in the scheduler ''' schedule = {'schedule': {'foo': 'bar'}} ret = copy.deepcopy(self.schedule.opts) ret.update({'schedule': {'foo': 'bar', 'name': {'schedule': {'foo': 'bar'}}}}) self.schedule.opts.update({'schedule': {'foo': 'bar'}}) Schedule.modify_job(self.schedule, 'name', schedule) self.assertEqual(self.schedule.opts, ret)
def test_modify_job_not_exists(schedule): """ Tests modifying a job in the scheduler if jobs not exists """ schedule_dict = {"foo": "bar"} schedule.opts.update({"schedule": {}, "pillar": {}}) ret = copy.deepcopy(schedule.opts) ret.update({"schedule": {"name": {"foo": "bar"}}}) Schedule.modify_job(schedule, "name", schedule_dict) assert schedule.opts == ret
def test_modify_job_pillar(self): ''' Tests modifying a job in the scheduler in pillar ''' schedule = {'foo': 'bar'} ret = copy.deepcopy(self.schedule.opts) ret.update({'pillar': {'schedule': {'name': {'foo': 'bar'}}}}) self.schedule.opts.update({'pillar': {'schedule': {'name': {'foo': 'bar'}}}}) Schedule.modify_job(self.schedule, 'name', schedule, persist=False, where='pillar') self.assertEqual(self.schedule.opts, ret)
def setUp(self): with patch('salt.utils.schedule.clean_proc_dir', MagicMock(return_value=None)): functions = {'test.ping': test_ping, 'test.true': test_true, 'status.time': status_time, 'cmd.run': cmd_run} self.schedule = Schedule(copy.deepcopy(self.default_config), functions, returners={}) self.addCleanup(delattr, self, 'schedule')
def test_reload_update_schedule_no_key(self): ''' Tests reloading the schedule from saved schedule that does not contain a schedule key but self.schedule.opts does not ''' saved = {'foo': 'bar'} ret = {'schedule': {'foo': 'bar', 'hello': 'world'}} self.schedule.opts = {'schedule': {'hello': 'world'}} Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret)
def test_add_job(self): ''' Tests adding a job to the schedule ''' data = {'foo': 'bar'} ret = {'schedule': {'foo': 'bar', 'hello': 'world'}} self.schedule.opts = {'schedule': {'hello': 'world'}, 'sock_dir': SOCK_DIR} Schedule.add_job(self.schedule, data) del self.schedule.opts['sock_dir'] self.assertEqual(self.schedule.opts, ret)
def test_reload_no_schedule_in_opts(self): ''' Tests reloading the schedule from saved schedule that does not contain a schedule key and neither does self.schedule.opts ''' saved = {'foo': 'bar'} ret = copy.deepcopy(self.schedule.opts) ret['schedule'] = {'foo': 'bar'} self.schedule.opts.pop('schedule', None) Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret)
def test_add_job(self): ''' Tests adding a job to the schedule ''' data = {'foo': {'bar': 'baz'}} ret = copy.deepcopy(self.schedule.opts) ret.update({'schedule': {'foo': {'bar': 'baz', 'enabled': True}, 'hello': {'world': 'peace', 'enabled': True}}}) self.schedule.opts.update({'schedule': {'hello': {'world': 'peace', 'enabled': True}}}) Schedule.add_job(self.schedule, data) self.assertEqual(self.schedule.opts, ret)
def test_modify_job_pillar(self): ''' Tests modifying a job in the scheduler in pillar ''' schedule = {'foo': 'bar'} ret = {'pillar': {'schedule': {'name': {'foo': 'bar'}}}} self.schedule.opts = {'pillar': {'schedule': {'name': {'foo': 'bar'}}}, 'sock_dir': SOCK_DIR} Schedule.modify_job(self.schedule, 'name', schedule, persist=False, where='pillar') del self.schedule.opts['sock_dir'] self.assertEqual(self.schedule.opts, ret)
def test_reload_schedule_in_saved_but_not_opts(self): ''' Tests reloading the schedule from saved schedule that contains a schedule key, but self.schedule.opts does not ''' saved = {'schedule': {'foo': 'bar'}} ret = copy.deepcopy(self.schedule.opts) ret['schedule'] = {'foo': 'bar'} self.schedule.opts.pop('schedule', None) Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret)
def setUp(self): with patch('salt.utils.schedule.clean_proc_dir', MagicMock(return_value=None)): self.schedule = Schedule(copy.deepcopy(DEFAULT_CONFIG), {}, returners={})
def setUp(self): with patch('salt.utils.schedule.clean_proc_dir', MagicMock(return_value=None)): self.schedule = Schedule({}, {}, returners={})
class ScheduleTestCase(TestCase): ''' Unit tests for salt.utils.schedule module ''' def setUp(self): with patch('salt.utils.schedule.clean_proc_dir', MagicMock(return_value=None)): self.schedule = Schedule({}, {}, returners={}) # delete_job tests def test_delete_job_exists(self): ''' Tests ensuring the job exists and deleting it ''' self.schedule.opts = {'schedule': {'foo': 'bar'}, 'pillar': '', 'sock_dir': SOCK_DIR} self.schedule.delete_job('foo') self.assertNotIn('foo', self.schedule.opts) def test_delete_job_in_pillar(self): ''' Tests deleting job in pillar ''' self.schedule.opts = {'pillar': {'schedule': {'foo': 'bar'}}, 'schedule': '', 'sock_dir': SOCK_DIR} self.schedule.delete_job('foo') self.assertNotIn('foo', self.schedule.opts) def test_delete_job_intervals(self): ''' Tests removing job from intervals ''' self.schedule.opts = {'pillar': '', 'schedule': '', 'sock_dir': SOCK_DIR} self.schedule.intervals = {'foo': 'bar'} self.schedule.delete_job('foo') self.assertNotIn('foo', self.schedule.intervals) # add_job tests def test_add_job_data_not_dict(self): ''' Tests if data is a dictionary ''' data = 'foo' self.assertRaises(ValueError, Schedule.add_job, self.schedule, data) def test_add_job_multiple_jobs(self): ''' Tests if more than one job is scheduled at a time ''' data = {'key1': 'value1', 'key2': 'value2'} self.assertRaises(ValueError, Schedule.add_job, self.schedule, data) def test_add_job(self): ''' Tests adding a job to the schedule ''' data = {'foo': {'bar': 'baz'}} ret = {'schedule': {'foo': {'bar': 'baz', 'enabled': True}, 'hello': {'world': 'peace', 'enabled': True}}} self.schedule.opts = {'schedule': {'hello': {'world': 'peace', 'enabled': True}}, 'sock_dir': SOCK_DIR} Schedule.add_job(self.schedule, data) del self.schedule.opts['sock_dir'] self.assertEqual(self.schedule.opts, ret) # enable_job tests def test_enable_job(self): ''' Tests enabling a job ''' self.schedule.opts = {'schedule': {'name': {'enabled': 'foo'}}, 'sock_dir': SOCK_DIR} Schedule.enable_job(self.schedule, 'name') del self.schedule.opts['sock_dir'] self.assertTrue(self.schedule.opts['schedule']['name']['enabled']) def test_enable_job_pillar(self): ''' Tests enabling a job in pillar ''' self.schedule.opts = {'pillar': {'schedule': {'name': {'enabled': 'foo'}}}, 'sock_dir': SOCK_DIR} Schedule.enable_job(self.schedule, 'name', persist=False, where='pillar') del self.schedule.opts['sock_dir'] self.assertTrue(self.schedule.opts['pillar']['schedule']['name']['enabled']) # disable_job tests def test_disable_job(self): ''' Tests disabling a job ''' self.schedule.opts = {'schedule': {'name': {'enabled': 'foo'}}, 'sock_dir': SOCK_DIR} Schedule.disable_job(self.schedule, 'name') del self.schedule.opts['sock_dir'] self.assertFalse(self.schedule.opts['schedule']['name']['enabled']) def test_disable_job_pillar(self): ''' Tests disabling a job in pillar ''' self.schedule.opts = {'pillar': {'schedule': {'name': {'enabled': 'foo'}}}, 'sock_dir': SOCK_DIR} Schedule.disable_job(self.schedule, 'name', persist=False, where='pillar') del self.schedule.opts['sock_dir'] self.assertFalse(self.schedule.opts['pillar']['schedule']['name']['enabled']) # modify_job tests def test_modify_job(self): ''' Tests modifying a job in the scheduler ''' schedule = {'schedule': {'foo': 'bar'}} ret = {'schedule': {'foo': 'bar', 'name': {'schedule': {'foo': 'bar'}}}} self.schedule.opts = {'schedule': {'foo': 'bar'}} Schedule.modify_job(self.schedule, 'name', schedule) self.assertEqual(self.schedule.opts, ret) def test_modify_job_pillar(self): ''' Tests modifying a job in the scheduler in pillar ''' schedule = {'foo': 'bar'} ret = {'pillar': {'schedule': {'name': {'foo': 'bar'}}}} self.schedule.opts = {'pillar': {'schedule': {'name': {'foo': 'bar'}}}, 'sock_dir': SOCK_DIR} Schedule.modify_job(self.schedule, 'name', schedule, persist=False, where='pillar') del self.schedule.opts['sock_dir'] self.assertEqual(self.schedule.opts, ret) # enable_schedule tests def test_enable_schedule(self): ''' Tests enabling the scheduler ''' self.schedule.opts = {'schedule': {'enabled': 'foo'}, 'sock_dir': SOCK_DIR} Schedule.enable_schedule(self.schedule) del self.schedule.opts['sock_dir'] self.assertTrue(self.schedule.opts['schedule']['enabled']) # disable_schedule tests def test_disable_schedule(self): ''' Tests disabling the scheduler ''' self.schedule.opts = {'schedule': {'enabled': 'foo'}, 'sock_dir': SOCK_DIR} Schedule.disable_schedule(self.schedule) del self.schedule.opts['sock_dir'] self.assertFalse(self.schedule.opts['schedule']['enabled']) # reload tests def test_reload_update_schedule_key(self): ''' Tests reloading the schedule from saved schedule where both the saved schedule and self.schedule.opts contain a schedule key ''' saved = {'schedule': {'foo': 'bar'}} ret = {'schedule': {'foo': 'bar', 'hello': 'world'}} self.schedule.opts = {'schedule': {'hello': 'world'}} Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret) def test_reload_update_schedule_no_key(self): ''' Tests reloading the schedule from saved schedule that does not contain a schedule key but self.schedule.opts does not ''' saved = {'foo': 'bar'} ret = {'schedule': {'foo': 'bar', 'hello': 'world'}} self.schedule.opts = {'schedule': {'hello': 'world'}} Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret) def test_reload_no_schedule_in_opts(self): ''' Tests reloading the schedule from saved schedule that does not contain a schedule key and neither does self.schedule.opts ''' saved = {'foo': 'bar'} ret = {'schedule': {'foo': 'bar'}} Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret) def test_reload_schedule_in_saved_but_not_opts(self): ''' Tests reloading the schedule from saved schedule that contains a schedule key, but self.schedule.opts does not ''' saved = {'schedule': {'foo': 'bar'}} ret = {'schedule': {'schedule': {'foo': 'bar'}}} Schedule.reload(self.schedule, saved) self.assertEqual(self.schedule.opts, ret) # eval tests def test_eval_schedule_is_not_dict(self): ''' Tests if the schedule is a dictionary ''' self.schedule.opts = {'schedule': ''} self.assertRaises(ValueError, Schedule.eval, self.schedule)