Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dnsviz/dnsviz.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCasey Deccio <casey@deccio.net>2020-11-25 01:59:03 +0300
committerCasey Deccio <casey@deccio.net>2020-12-08 20:56:28 +0300
commit5f3a496af39bf607bc99f9f3131ac37ea1c42706 (patch)
treef4817df4e42cdf74fb6be7a8ede1dbf79010fe9e
parentbb32d5345782b62e5930e091acb968f34cbf1835 (diff)
Parse args in separate method
-rw-r--r--dnsviz/commands/graph.py7
-rw-r--r--dnsviz/commands/grok.py7
-rw-r--r--dnsviz/commands/print.py7
-rw-r--r--dnsviz/commands/probe.py7
-rw-r--r--tests/dnsviz_graph_options.py75
-rw-r--r--tests/dnsviz_grok_options.py51
-rw-r--r--tests/dnsviz_print_options.py48
-rw-r--r--tests/dnsviz_probe_options.py120
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')])