diff options
-rw-r--r-- | dnsviz/commands/graph.py | 7 | ||||
-rw-r--r-- | dnsviz/commands/grok.py | 7 | ||||
-rw-r--r-- | dnsviz/commands/print.py | 7 | ||||
-rw-r--r-- | dnsviz/commands/probe.py | 7 | ||||
-rw-r--r-- | tests/dnsviz_graph_options.py | 75 | ||||
-rw-r--r-- | tests/dnsviz_grok_options.py | 51 | ||||
-rw-r--r-- | tests/dnsviz_print_options.py | 48 | ||||
-rw-r--r-- | tests/dnsviz_probe_options.py | 120 |
8 files changed, 216 insertions, 106 deletions
diff --git a/dnsviz/commands/graph.py b/dnsviz/commands/graph.py index ab68810..2539e35 100644 --- a/dnsviz/commands/graph.py +++ b/dnsviz/commands/graph.py @@ -143,7 +143,7 @@ class GraphArgHelper: self._logger = logger - def build_parser(self, prog, args): + def build_parser(self, prog): self.parser = argparse.ArgumentParser(description='Graph the assessment of diagnostic DNS queries', prog=prog) # python3/python2 dual compatibility @@ -232,6 +232,8 @@ class GraphArgHelper: help='Domain names') self._arg_mapping = dict([(a.dest, '/'.join(a.option_strings)) for a in self.parser._actions]) + + def parse_args(self, args): self.args = self.parser.parse_args(args) @classmethod @@ -411,7 +413,8 @@ def main(argv): test_pygraphviz() arghelper = GraphArgHelper(logger) - arghelper.build_parser('%s %s' % (sys.argv[0], argv[0]), argv[1:]) + arghelper.build_parser('%s %s' % (sys.argv[0], argv[0])) + arghelper.parse_args(argv[1:]) logger.setLevel(logging.WARNING) try: diff --git a/dnsviz/commands/grok.py b/dnsviz/commands/grok.py index f4d8059..398dbc1 100644 --- a/dnsviz/commands/grok.py +++ b/dnsviz/commands/grok.py @@ -166,7 +166,7 @@ class GrokArgHelper: self._logger = logger - def build_parser(self, prog, args): + def build_parser(self, prog): self.parser = argparse.ArgumentParser(description='Assess diagnostic DNS queries', prog=prog) # python3/python2 dual compatibility @@ -247,6 +247,8 @@ class GrokArgHelper: help='Domain names') self._arg_mapping = dict([(a.dest, '/'.join(a.option_strings)) for a in self.parser._actions]) + + def parse_args(self, args): self.args = self.parser.parse_args(args) @classmethod @@ -403,7 +405,8 @@ def main(argv): try: arghelper = GrokArgHelper(logger) - arghelper.build_parser('%s %s' % (sys.argv[0], argv[0]), argv[1:]) + arghelper.build_parser('%s %s' % (sys.argv[0], argv[0])) + arghelper.parse_args(argv[1:]) logger.setLevel(logging.WARNING) try: diff --git a/dnsviz/commands/print.py b/dnsviz/commands/print.py index 40ea8d7..6eb83b2 100644 --- a/dnsviz/commands/print.py +++ b/dnsviz/commands/print.py @@ -301,7 +301,7 @@ class PrintArgHelper: self._logger = logger - def build_parser(self, prog, args): + def build_parser(self, prog): self.parser = argparse.ArgumentParser(description='Print the assessment of diagnostic DNS queries', prog=prog) # python3/python2 dual compatibility @@ -382,6 +382,8 @@ class PrintArgHelper: help='Domain names') self._arg_mapping = dict([(a.dest, '/'.join(a.option_strings)) for a in self.parser._actions]) + + def parse_args(self, args): self.args = self.parser.parse_args(args) @classmethod @@ -545,7 +547,8 @@ def main(argv): test_pygraphviz() arghelper = PrintArgHelper(logger) - arghelper.build_parser('%s %s' % (sys.argv[0], argv[0]), argv[1:]) + arghelper.build_parser('%s %s' % (sys.argv[0], argv[0])) + arghelper.parse_args(argv[1:]) logger.setLevel(logging.WARNING) try: diff --git a/dnsviz/commands/probe.py b/dnsviz/commands/probe.py index f337870..bb01c0a 100644 --- a/dnsviz/commands/probe.py +++ b/dnsviz/commands/probe.py @@ -910,7 +910,7 @@ class ArgHelper: self._logger = logger self._zones_to_serve = [] - def build_parser(self, prog, args): + def build_parser(self, prog): self.parser = argparse.ArgumentParser(description='Issue diagnostic DNS queries', prog=prog) helper = DomainListArgHelper(self._resolver) @@ -1027,6 +1027,8 @@ class ArgHelper: help='Domain names') self._arg_mapping = dict([(a.dest, '/'.join(a.option_strings)) for a in self.parser._actions]) + + def parse_args(self, args): self.args = self.parser.parse_args(args) @classmethod @@ -1459,7 +1461,8 @@ def main(argv): sys.exit(1) arghelper = ArgHelper(bootstrap_resolver, logger) - arghelper.build_parser('%s %s' % (sys.argv[0], argv[0]), argv[1:]) + arghelper.build_parser('%s %s' % (sys.argv[0], argv[0])) + arghelper.parse_args(argv[1:]) logger.setLevel(arghelper.get_log_level()) try: diff --git a/tests/dnsviz_graph_options.py b/tests/dnsviz_graph_options.py index 9c60036..1e3db2c 100644 --- a/tests/dnsviz_graph_options.py +++ b/tests/dnsviz_graph_options.py @@ -116,34 +116,39 @@ class DNSVizGraphOptionsTestCase(unittest.TestCase): try: args = ['-r', example_auth_out.name] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.ingest_input() # Bad json args = ['-r', example_bad_json.name] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # No version args = ['-r', example_no_version.name] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # Invalid version args = ['-r', example_invalid_version_1.name] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # Invalid version args = ['-r', example_invalid_version_2.name] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() @@ -155,7 +160,8 @@ class DNSVizGraphOptionsTestCase(unittest.TestCase): def test_ingest_names(self): args = ['example.com', 'example.net'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net')]) @@ -168,20 +174,23 @@ class DNSVizGraphOptionsTestCase(unittest.TestCase): try: args = ['-f', names_file.name] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net')]) args = ['-r', example_names_only.name] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.ingest_input() arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net'), dns.name.from_text('example.org')]) args = ['-r', example_names_only.name, 'example.com'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.ingest_input() arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com')]) @@ -202,7 +211,8 @@ class DNSVizGraphOptionsTestCase(unittest.TestCase): args = ['example.com'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.aggregate_trusted_key_info() self.assertEqual(arghelper.trusted_keys, None) arghelper.update_trusted_key_info(now) @@ -217,14 +227,16 @@ class DNSVizGraphOptionsTestCase(unittest.TestCase): try: args = ['-t', tk1_file.name, '-t', tk2_file.name, 'example.com'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.aggregate_trusted_key_info() arghelper.update_trusted_key_info(now) self.assertEqual(arghelper.trusted_keys, tk_explicit) args = ['-t', '/dev/null', 'example.com'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.aggregate_trusted_key_info() arghelper.update_trusted_key_info(now) self.assertEqual(arghelper.trusted_keys, []) @@ -238,82 +250,95 @@ class DNSVizGraphOptionsTestCase(unittest.TestCase): # Names file and command-line domain names are mutually exclusive args = ['-f', '/dev/null', 'example.com'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() # Names file and command-line domain names are mutually exclusive args = ['-O', '-o', '/dev/null'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() # But this is allowed args = ['-o', '/dev/null'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.check_args() # So is this args = ['-O'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.check_args() def test_output_format(self): args = ['-T', 'png', '-o', 'foo.dot'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.output_format, 'png') args = ['-o', 'foo.dot'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.output_format, 'dot') args = ['-o', 'foo.png'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.output_format, 'png') args = ['-o', 'foo.html'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.output_format, 'html') args = ['-o', 'foo.svg'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.output_format, 'svg') args = ['-o', 'foo.xyz'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.set_kwargs() args = ['-o', 'png'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.set_kwargs() args = ['-o', '-'] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.output_format, 'dot') args = [] arghelper = GraphArgHelper(self.logger) - arghelper.build_parser('graph', args) + arghelper.build_parser('graph') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.output_format, 'dot') diff --git a/tests/dnsviz_grok_options.py b/tests/dnsviz_grok_options.py index 8d6ebc5..346459e 100644 --- a/tests/dnsviz_grok_options.py +++ b/tests/dnsviz_grok_options.py @@ -93,34 +93,39 @@ class DNSVizGrokOptionsTestCase(unittest.TestCase): try: args = ['-r', example_auth_out.name] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.ingest_input() # Bad json args = ['-r', example_bad_json.name] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # No version args = ['-r', example_no_version.name] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # Invalid version args = ['-r', example_invalid_version_1.name] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # Invalid version args = ['-r', example_invalid_version_2.name] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() @@ -132,7 +137,8 @@ class DNSVizGrokOptionsTestCase(unittest.TestCase): def test_ingest_names(self): args = ['example.com', 'example.net'] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net')]) @@ -145,20 +151,23 @@ class DNSVizGrokOptionsTestCase(unittest.TestCase): try: args = ['-f', names_file.name] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net')]) args = ['-r', example_names_only.name] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.ingest_input() arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net'), dns.name.from_text('example.org')]) args = ['-r', example_names_only.name, 'example.com'] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.ingest_input() arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com')]) @@ -176,7 +185,8 @@ class DNSVizGrokOptionsTestCase(unittest.TestCase): args = ['example.com'] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.aggregate_trusted_key_info() self.assertEqual(arghelper.trusted_keys, None) arghelper.update_trusted_key_info() @@ -191,14 +201,16 @@ class DNSVizGrokOptionsTestCase(unittest.TestCase): try: args = ['-t', tk1_file.name, '-t', tk2_file.name, 'example.com'] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.aggregate_trusted_key_info() arghelper.update_trusted_key_info() self.assertEqual(arghelper.trusted_keys, tk_explicit) args = ['-t', '/dev/null', 'example.com'] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.aggregate_trusted_key_info() arghelper.update_trusted_key_info() self.assertEqual(arghelper.trusted_keys, []) @@ -212,7 +224,8 @@ class DNSVizGrokOptionsTestCase(unittest.TestCase): # Names file and command-line domain names are mutually exclusive args = ['-f', '/dev/null', 'example.com'] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() @@ -221,25 +234,29 @@ class DNSVizGrokOptionsTestCase(unittest.TestCase): # Names file and command-line domain names are mutually exclusive args = [] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.log_level, logging.DEBUG) args = ['-l', 'info'] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.log_level, logging.INFO) args = ['-l', 'warning'] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.log_level, logging.WARNING) args = ['-l', 'error'] arghelper = GrokArgHelper(self.logger) - arghelper.build_parser('grok', args) + arghelper.build_parser('grok') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.log_level, logging.ERROR) diff --git a/tests/dnsviz_print_options.py b/tests/dnsviz_print_options.py index ddb2471..ce118ad 100644 --- a/tests/dnsviz_print_options.py +++ b/tests/dnsviz_print_options.py @@ -116,34 +116,39 @@ class DNSVizPrintOptionsTestCase(unittest.TestCase): try: args = ['-r', example_auth_out.name] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.ingest_input() # Bad json args = ['-r', example_bad_json.name] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # No version args = ['-r', example_no_version.name] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # Invalid version args = ['-r', example_invalid_version_1.name] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # Invalid version args = ['-r', example_invalid_version_2.name] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() @@ -155,7 +160,8 @@ class DNSVizPrintOptionsTestCase(unittest.TestCase): def test_ingest_names(self): args = ['example.com', 'example.net'] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net')]) @@ -168,20 +174,23 @@ class DNSVizPrintOptionsTestCase(unittest.TestCase): try: args = ['-f', names_file.name] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net')]) args = ['-r', example_names_only.name] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.ingest_input() arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net'), dns.name.from_text('example.org')]) args = ['-r', example_names_only.name, 'example.com'] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.ingest_input() arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com')]) @@ -202,7 +211,8 @@ class DNSVizPrintOptionsTestCase(unittest.TestCase): args = ['example.com'] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.aggregate_trusted_key_info() self.assertEqual(arghelper.trusted_keys, None) arghelper.update_trusted_key_info(now) @@ -217,14 +227,16 @@ class DNSVizPrintOptionsTestCase(unittest.TestCase): try: args = ['-t', tk1_file.name, '-t', tk2_file.name, 'example.com'] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.aggregate_trusted_key_info() arghelper.update_trusted_key_info(now) self.assertEqual(arghelper.trusted_keys, tk_explicit) args = ['-t', '/dev/null', 'example.com'] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.aggregate_trusted_key_info() arghelper.update_trusted_key_info(now) self.assertEqual(arghelper.trusted_keys, []) @@ -238,27 +250,31 @@ class DNSVizPrintOptionsTestCase(unittest.TestCase): # Names file and command-line domain names are mutually exclusive args = ['-f', '/dev/null', 'example.com'] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() # Names file and command-line domain names are mutually exclusive args = ['-O', '-o', '/dev/null'] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() # But this is allowed args = ['-o', '/dev/null'] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.check_args() # So is this args = ['-O'] arghelper = PrintArgHelper(self.logger) - arghelper.build_parser('print', args) + arghelper.build_parser('print') + arghelper.parse_args(args) arghelper.check_args() if __name__ == '__main__': diff --git a/tests/dnsviz_probe_options.py b/tests/dnsviz_probe_options.py index 1cf8c2c..4519160 100644 --- a/tests/dnsviz_probe_options.py +++ b/tests/dnsviz_probe_options.py @@ -600,7 +600,8 @@ ns1.example 0 IN A 192.0.2.1 ZoneFileToServe._next_free_port = self.first_port arghelper1 = ArgHelper(self.resolver, self.logger) - arghelper1.build_parser('probe', args1) + arghelper1.build_parser('probe') + arghelper1.parse_args(args1) arghelper1.aggregate_delegation_info() zone_to_serve = arghelper1._zones_to_serve[0] zone_obj = dns.zone.from_file(zone_to_serve.filename, dns.name.from_text('com')) @@ -612,7 +613,8 @@ ns1.example 0 IN A 192.0.2.1 ZoneFileToServe._next_free_port = self.first_port arghelper2 = ArgHelper(self.resolver, self.logger) - arghelper2.build_parser('probe', args2) + arghelper2.build_parser('probe') + arghelper2.parse_args(args2) arghelper2.aggregate_delegation_info() zone_to_serve = arghelper2._zones_to_serve[0] zone_obj = dns.zone.from_file(zone_to_serve.filename, dns.name.from_text('com')) @@ -624,7 +626,8 @@ ns1.example 0 IN A 192.0.2.1 ZoneFileToServe._next_free_port = self.first_port arghelper3 = ArgHelper(self.resolver, self.logger) - arghelper3.build_parser('probe', args3) + arghelper3.build_parser('probe') + arghelper3.parse_args(args3) arghelper3.aggregate_delegation_info() self.assertEqual(arghelper3.explicit_delegations, explicit_delegations3) self.assertEqual(arghelper3.odd_ports, odd_ports3) @@ -632,7 +635,8 @@ ns1.example 0 IN A 192.0.2.1 ZoneFileToServe._next_free_port = self.first_port arghelper4 = ArgHelper(self.resolver, self.logger) - arghelper4.build_parser('probe', args4) + arghelper4.build_parser('probe') + arghelper4.parse_args(args4) arghelper4.aggregate_delegation_info() self.assertEqual(arghelper4.explicit_delegations, explicit_delegations4) self.assertEqual(arghelper4.odd_ports, odd_ports4) @@ -672,7 +676,8 @@ ns1.example 0 IN A 192.0.2.1 ZoneFileToServe._next_free_port = self.first_port arghelper1 = ArgHelper(self.resolver, self.logger) - arghelper1.build_parser('probe', args1) + arghelper1.build_parser('probe') + arghelper1.parse_args(args1) arghelper1.aggregate_delegation_info() self.assertEqual(arghelper1.explicit_delegations, explicit_delegations1) self.assertEqual(arghelper1.odd_ports, odd_ports1) @@ -682,7 +687,8 @@ ns1.example 0 IN A 192.0.2.1 '-x', 'com:ns1.foo.com=192.0.2.3'] arghelper1 = ArgHelper(self.resolver, self.logger) - arghelper1.build_parser('probe', args1) + arghelper1.build_parser('probe') + arghelper1.parse_args(args1) # com is specified with -x but example.com is specified with -N with self.assertRaises(argparse.ArgumentTypeError): @@ -713,7 +719,8 @@ ns1.example 0 IN A 192.0.2.1 odd_ports1 = {} arghelper1 = ArgHelper(self.resolver, self.logger) - arghelper1.build_parser('probe', args1) + arghelper1.build_parser('probe') + arghelper1.parse_args(args1) arghelper1.aggregate_delegation_info() self.assertEqual(arghelper1.explicit_delegations, explicit_delegations1) self.assertEqual(arghelper1.odd_ports, odd_ports1) @@ -723,14 +730,16 @@ ns1.example 0 IN A 192.0.2.1 # Names, input file, or names file required args = [] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() # Names file and command-line domain names are mutually exclusive args = ['-f', '/dev/null', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() arghelper.args.names_file.close() @@ -738,75 +747,86 @@ ns1.example 0 IN A 192.0.2.1 # Authoritative analysis and recursive servers args = ['-A', '-s', '192.0.2.1', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() # Authoritative servers with recursive analysis args = ['-x', 'example.com:ns1.example.com=192.0.2.1', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() # Delegation information with recursive analysis args = ['-N', 'example.com:ns1.example.com=192.0.2.1', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() # Delegation information with recursive analysis args = [ '-D', 'example.com:34983 10 1 EC358CFAAEC12266EF5ACFC1FEAF2CAFF083C418', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(argparse.ArgumentTypeError): arghelper.check_args() def test_ceiling(self): args = ['-a', 'com', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.ceiling, dns.name.from_text('com')) args = ['example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.ceiling, dns.name.root) args = ['-A', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertIsNone(arghelper.ceiling) def test_ip4_ipv6(self): args = [] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.try_ipv4, True) self.assertEqual(arghelper.try_ipv6, True) args = ['-4', '-6'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.try_ipv4, True) self.assertEqual(arghelper.try_ipv6, True) args = ['-4'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.try_ipv4, True) self.assertEqual(arghelper.try_ipv6, False) args = ['-6'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.try_ipv4, False) self.assertEqual(arghelper.try_ipv6, True) @@ -814,7 +834,8 @@ ns1.example 0 IN A 192.0.2.1 def test_client_ip(self): args = [] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertIsNone(arghelper.client_ipv4) self.assertIsNone(arghelper.client_ipv6) @@ -823,7 +844,8 @@ ns1.example 0 IN A 192.0.2.1 if self.use_ipv6: args.extend(['-b', '::1']) arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(arghelper.client_ipv4, IPAddr('127.0.0.1')) if self.use_ipv6: @@ -832,25 +854,29 @@ ns1.example 0 IN A 192.0.2.1 def test_th_factories(self): args = ['example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertIsNone(arghelper.th_factories) args = ['-u', 'http://example.com/', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertIsInstance(arghelper.th_factories[0], transport.DNSQueryTransportHandlerHTTPFactory) args = ['-u', 'ws:///dev/null', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertIsInstance(arghelper.th_factories[0], transport.DNSQueryTransportHandlerWebSocketServerFactory) args = ['-u', 'ssh://example.com/', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertIsInstance(arghelper.th_factories[0], transport.DNSQueryTransportHandlerRemoteCmdFactory) @@ -860,7 +886,8 @@ ns1.example 0 IN A 192.0.2.1 # None args = ['-c', '', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(len(CustomQueryMixin.edns_options), 0) @@ -869,7 +896,8 @@ ns1.example 0 IN A 192.0.2.1 # Only DNS cookie args = ['example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(set([o.otype for o in CustomQueryMixin.edns_options]), set([10])) @@ -878,7 +906,8 @@ ns1.example 0 IN A 192.0.2.1 # All EDNS options args = ['-n', '-e', '192.0.2.0/24', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.set_kwargs() self.assertEqual(set([o.otype for o in CustomQueryMixin.edns_options]), set([3, 8, 10])) @@ -904,34 +933,39 @@ ns1.example 0 IN A 192.0.2.1 try: args = ['-r', example_auth_out.name] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.ingest_input() # Bad json args = ['-r', example_bad_json.name] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # No version args = ['-r', example_no_version.name] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # Invalid version args = ['-r', example_invalid_version_1.name] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() # Invalid version args = ['-r', example_invalid_version_2.name] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) with self.assertRaises(AnalysisInputError): arghelper.ingest_input() @@ -943,7 +977,8 @@ ns1.example 0 IN A 192.0.2.1 def test_ingest_names(self): args = ['example.com', 'example.net'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net')]) @@ -951,7 +986,8 @@ ns1.example 0 IN A 192.0.2.1 args = [unicode_name] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('xn--zckzah.')]) @@ -971,26 +1007,30 @@ ns1.example 0 IN A 192.0.2.1 try: args = ['-f', names_file.name] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net')]) args = ['-f', names_file_unicode.name] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('xn--zckzah.')]) args = ['-r', example_names_only.name] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.ingest_input() arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com'), dns.name.from_text('example.net'), dns.name.from_text('example.org')]) args = ['-r', example_names_only.name, 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) - arghelper.build_parser('probe', args) + arghelper.build_parser('probe') + arghelper.parse_args(args) arghelper.ingest_input() arghelper.ingest_names() self.assertEqual(list(arghelper.names), [dns.name.from_text('example.com')]) |