from unittest import mock from oslo_config import cfg from aprsd import conf # noqa: F401 from aprsd.plugins import fortune as fortune_plugin from .. import fake, test_plugin CONF = cfg.CONF class TestFortunePlugin(test_plugin.TestPlugin): @mock.patch('shutil.which') def test_fortune_fail(self, mock_which): mock_which.return_value = None fortune = fortune_plugin.FortunePlugin() expected = "FortunePlugin isn't enabled" packet = fake.fake_packet(message='fortune') actual = fortune.filter(packet) self.assertEqual(expected, actual) @mock.patch('subprocess.check_output') @mock.patch('shutil.which') def test_fortune_success(self, mock_which, mock_output): mock_which.return_value = '/usr/bin/games/fortune' mock_output.return_value = 'Funny fortune' CONF.callsign = fake.FAKE_TO_CALLSIGN fortune = fortune_plugin.FortunePlugin() expected = 'Funny fortune' packet = fake.fake_packet(message='fortune') actual = fortune.filter(packet) self.assertEqual(expected, actual)