def test_minion_manage_beacons(self): """ Tests that the manage_beacons will call the add function, adding beacon 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() mock_functions = {"test.ping": None} minion = salt.minion.Minion(mock_opts, io_loop=io_loop) minion.beacons = salt.beacons.Beacon(mock_opts, mock_functions) bdata = [{"salt-master": "stopped"}, {"apache2": "stopped"}] data = {"name": "ps", "beacon_data": bdata, "func": "add"} tag = "manage_beacons" minion.manage_beacons(tag, data) self.assertIn("ps", minion.opts["beacons"]) self.assertEqual(minion.opts["beacons"]["ps"], bdata)
def test_minion_manage_beacons(): """ Tests that the manage_beacons will call the add function, adding beacon 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), ): try: mock_opts = salt.config.DEFAULT_MINION_OPTS.copy() mock_opts["beacons"] = {} io_loop = salt.ext.tornado.ioloop.IOLoop() io_loop.make_current() mock_functions = {"test.ping": None} minion = salt.minion.Minion(mock_opts, io_loop=io_loop) minion.beacons = salt.beacons.Beacon(mock_opts, mock_functions) bdata = [{"salt-master": "stopped"}, {"apache2": "stopped"}] data = {"name": "ps", "beacon_data": bdata, "func": "add"} tag = "manage_beacons" log.debug("==== minion.opts %s ====", minion.opts) minion.manage_beacons(tag, data) assert "ps" in minion.opts["beacons"] assert minion.opts["beacons"]["ps"] == bdata finally: minion.destroy()