File: arguments.py

package info (click to toggle)
nyx 2.1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,732 kB
  • sloc: python: 7,055; makefile: 7; sh: 3
file content (91 lines) | stat: -rw-r--r-- 3,027 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
"""
Unit tests for nyx.arguments.
"""

import unittest

from nyx.arguments import DEFAULT_ARGS, parse, get_help, get_version


class TestArgumentParsing(unittest.TestCase):
  def test_that_we_get_default_values(self):
    args = parse([])

    for attr in DEFAULT_ARGS:
      self.assertEqual(DEFAULT_ARGS[attr], getattr(args, attr))

  def test_that_we_load_arguments(self):
    args = parse(['--interface', '10.0.0.25:80'])
    self.assertEqual(('10.0.0.25', 80), args.control_port)

    args = parse(['--interface', '80'])
    self.assertEqual((DEFAULT_ARGS['control_port'][0], 80), args.control_port)

    args = parse(['--interface', ':80'])
    self.assertEqual((DEFAULT_ARGS['control_port'][0], 80), args.control_port)

    args = parse(['--socket', '/tmp/my_socket', '--config', '/tmp/my_config'])
    self.assertEqual('/tmp/my_socket', args.control_socket)
    self.assertEqual('/tmp/my_config', args.config)

    args = parse(['--debug', '/tmp/dump'])
    self.assertEqual('/tmp/dump', args.debug_path)

    args = parse(['--log', 'DEBUG,NYX_DEBUG'])
    self.assertEqual('DEBUG,NYX_DEBUG', args.logged_events)

    args = parse(['--version'])
    self.assertEqual(True, args.print_version)

    args = parse(['--help'])
    self.assertEqual(True, args.print_help)

  def test_examples(self):
    args = parse(['-i', '1643'])
    self.assertEqual((DEFAULT_ARGS['control_port'][0], 1643), args.control_port)

    args = parse(['-l', 'WARN,ERR', '-c', '/tmp/cfg'])
    self.assertEqual('WARN,ERR', args.logged_events)
    self.assertEqual('/tmp/cfg', args.config)

  def test_that_we_reject_unrecognized_arguments(self):
    self.assertRaises(ValueError, parse, ['--blarg', 'stuff'])

  def test_port_and_socket_unset_other(self):
    args = parse([])
    self.assertEqual(DEFAULT_ARGS['control_port'], args.control_port)
    self.assertEqual(DEFAULT_ARGS['control_socket'], args.control_socket)

    args = parse(['--interface', '10.0.0.25:80'])
    self.assertEqual(('10.0.0.25', 80), args.control_port)
    self.assertEqual(None, args.control_socket)

    args = parse(['--socket', '/tmp/my_socket'])
    self.assertEqual(None, args.control_port)
    self.assertEqual('/tmp/my_socket', args.control_socket)

    args = parse(['--interface', '10.0.0.25:80', '--socket', '/tmp/my_socket'])
    self.assertEqual(('10.0.0.25', 80), args.control_port)
    self.assertEqual('/tmp/my_socket', args.control_socket)

  def test_that_we_reject_invalid_interfaces(self):
    invalid_inputs = (
      '',
      '    ',
      'blarg',
      '127.0.0.1',
      '127.0.0.1:',
      '400.0.0.1:80',
      '127.0.0.1:-5',
      '127.0.0.1:500000',
    )

    for invalid_input in invalid_inputs:
      self.assertRaises(ValueError, parse, ['--interface', invalid_input])

  def test_help(self):
    self.assertTrue(get_help().startswith('Usage nyx [OPTION]'))
    self.assertTrue('change control interface from 127.0.0.1:default' in get_help())

  def test_version(self):
    self.assertTrue(get_version().startswith('nyx version'))