123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- import unittest
- import logging
- import sys
- import mock
- from kalliope import parse_args, configure_logging, main
- class TestInit(unittest.TestCase):
- def test_parse_args(self):
- # start option
- parser = parse_args(['value'])
- self.assertEqual(parser.action, "value")
- # no option
- with self.assertRaises(SystemExit):
- parse_args([])
- parser = parse_args(['start', '--run-synapse', 'run_synapse'])
- self.assertEqual(parser.run_synapse, 'run_synapse')
- parser = parse_args(['start', '--run-order', 'my order'])
- self.assertEqual(parser.run_order, 'my order')
- def test_configure_logging(self):
- logger = logging.getLogger("kalliope")
- # Level 10 = DEBUG
- configure_logging(debug=True)
- self.assertEqual(logger.getEffectiveLevel(), 10)
- logger.propagate = False
- # Level 20 = INFO
- configure_logging(debug=False)
- self.assertEqual(logger.getEffectiveLevel(), 20)
- # disable after testing
- logger.disabled = True
- def test_main(self):
- # test start kalliope
- sys.argv = ['kalliope.py', 'start']
- with mock.patch('kalliope.start_rest_api') as mock_rest_api:
- with mock.patch('kalliope.start_kalliope') as mock_start_kalliope:
- mock_rest_api.return_value = None
- main()
- mock_rest_api.assert_called()
- mock_start_kalliope.assert_called()
- # test start gui
- sys.argv = ['kalliope.py', 'gui']
- with mock.patch('kalliope.core.ShellGui.__init__') as mock_shell_gui:
- mock_shell_gui.return_value = None
- main()
- mock_shell_gui.assert_called()
- # test run_synapse
- sys.argv = ['kalliope.py', 'start', '--run-synapse', 'synapse_name']
- with mock.patch('kalliope.core.SynapseLauncher.start_synapse_by_list_name') as mock_synapse_launcher:
- mock_synapse_launcher.return_value = None
- main()
- mock_synapse_launcher.assert_called()
- # test run order
- sys.argv = ['kalliope.py', 'start', '--run-order', 'my order']
- with mock.patch('kalliope.core.SynapseLauncher.run_matching_synapse_from_order') as mock_synapse_launcher:
- mock_synapse_launcher.return_value = None
- main()
- mock_synapse_launcher.assert_called()
- # action doesn't exist
- sys.argv = ['kalliope.py', 'non_existing_action']
- with self.assertRaises(SystemExit):
- main()
- # install
- sys.argv = ['kalliope.py', 'install', '--git-url', 'https://my_url']
- with mock.patch('kalliope.core.ResourcesManager.install') as mock_resource_manager:
- mock_resource_manager.return_value = None
- main()
- mock_resource_manager.assert_called()
- # install, no URL
- sys.argv = ['kalliope.py', 'install']
- with self.assertRaises(SystemExit):
- main()
- sys.argv = ['kalliope.py', 'install', '--git-url']
- with self.assertRaises(SystemExit):
- main()
- # uninstall
- sys.argv = ['kalliope.py', 'uninstall', '--neuron-name', 'neuron_name']
- with mock.patch('kalliope.core.ResourcesManager.uninstall') as mock_resource_manager:
- mock_resource_manager.return_value = None
- main()
- mock_resource_manager.assert_called()
- sys.argv = ['kalliope.py', 'uninstall']
- with self.assertRaises(SystemExit):
- main()
- if __name__ == '__main__':
- unittest.main()
- # suite = unittest.TestSuite()
- # suite.addTest(TestInit("test_main"))
- # runner = unittest.TextTestRunner()
- # runner.run(suite)
|