1""" 2Unit tests for nyx.arguments. 3""" 4 5import unittest 6 7from nyx.arguments import DEFAULT_ARGS, parse, get_help, get_version 8 9 10class TestArgumentParsing(unittest.TestCase): 11 def test_that_we_get_default_values(self): 12 args = parse([]) 13 14 for attr in DEFAULT_ARGS: 15 self.assertEqual(DEFAULT_ARGS[attr], getattr(args, attr)) 16 17 def test_that_we_load_arguments(self): 18 args = parse(['--interface', '10.0.0.25:80']) 19 self.assertEqual(('10.0.0.25', 80), args.control_port) 20 21 args = parse(['--interface', '80']) 22 self.assertEqual((DEFAULT_ARGS['control_port'][0], 80), args.control_port) 23 24 args = parse(['--interface', ':80']) 25 self.assertEqual((DEFAULT_ARGS['control_port'][0], 80), args.control_port) 26 27 args = parse(['--socket', '/tmp/my_socket', '--config', '/tmp/my_config']) 28 self.assertEqual('/tmp/my_socket', args.control_socket) 29 self.assertEqual('/tmp/my_config', args.config) 30 31 args = parse(['--debug', '/tmp/dump']) 32 self.assertEqual('/tmp/dump', args.debug_path) 33 34 args = parse(['--log', 'DEBUG,NYX_DEBUG']) 35 self.assertEqual('DEBUG,NYX_DEBUG', args.logged_events) 36 37 args = parse(['--version']) 38 self.assertEqual(True, args.print_version) 39 40 args = parse(['--help']) 41 self.assertEqual(True, args.print_help) 42 43 def test_examples(self): 44 args = parse(['-i', '1643']) 45 self.assertEqual((DEFAULT_ARGS['control_port'][0], 1643), args.control_port) 46 47 args = parse(['-l', 'WARN,ERR', '-c', '/tmp/cfg']) 48 self.assertEqual('WARN,ERR', args.logged_events) 49 self.assertEqual('/tmp/cfg', args.config) 50 51 def test_that_we_reject_unrecognized_arguments(self): 52 self.assertRaises(ValueError, parse, ['--blarg', 'stuff']) 53 54 def test_port_and_socket_unset_other(self): 55 args = parse([]) 56 self.assertEqual(DEFAULT_ARGS['control_port'], args.control_port) 57 self.assertEqual(DEFAULT_ARGS['control_socket'], args.control_socket) 58 59 args = parse(['--interface', '10.0.0.25:80']) 60 self.assertEqual(('10.0.0.25', 80), args.control_port) 61 self.assertEqual(None, args.control_socket) 62 63 args = parse(['--socket', '/tmp/my_socket']) 64 self.assertEqual(None, args.control_port) 65 self.assertEqual('/tmp/my_socket', args.control_socket) 66 67 args = parse(['--interface', '10.0.0.25:80', '--socket', '/tmp/my_socket']) 68 self.assertEqual(('10.0.0.25', 80), args.control_port) 69 self.assertEqual('/tmp/my_socket', args.control_socket) 70 71 def test_that_we_reject_invalid_interfaces(self): 72 invalid_inputs = ( 73 '', 74 ' ', 75 'blarg', 76 '127.0.0.1', 77 '127.0.0.1:', 78 '400.0.0.1:80', 79 '127.0.0.1:-5', 80 '127.0.0.1:500000', 81 ) 82 83 for invalid_input in invalid_inputs: 84 self.assertRaises(ValueError, parse, ['--interface', invalid_input]) 85 86 def test_help(self): 87 self.assertTrue(get_help().startswith('Usage nyx [OPTION]')) 88 self.assertTrue('change control interface from 127.0.0.1:default' in get_help()) 89 90 def test_version(self): 91 self.assertTrue(get_version().startswith('nyx version')) 92