def test_th_factories(self): args = ['example.com'] arghelper = ArgHelper(self.resolver, self.logger) arghelper.build_parser('probe', 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.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.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.set_kwargs() self.assertIsInstance( arghelper.th_factories[0], transport.DNSQueryTransportHandlerRemoteCmdFactory)
def test_ip4_ipv6(self): args = [] arghelper = ArgHelper(self.resolver, self.logger) arghelper.build_parser('probe', 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.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.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.set_kwargs() self.assertEqual(arghelper.try_ipv4, False) self.assertEqual(arghelper.try_ipv6, True)
def test_client_ip(self): args = [] arghelper = ArgHelper(self.resolver, self.logger) arghelper.build_parser('probe', args) arghelper.set_kwargs() self.assertIsNone(arghelper.client_ipv4) self.assertIsNone(arghelper.client_ipv6) args = ['-b', '127.0.0.1'] if self.use_ipv6: args.extend(['-b', '::1']) arghelper = ArgHelper(self.resolver, self.logger) arghelper.build_parser('probe', args) arghelper.set_kwargs() self.assertEqual(arghelper.client_ipv4, IPAddr('127.0.0.1')) if self.use_ipv6: self.assertEqual(arghelper.client_ipv6, IPAddr('::1'))
def test_edns_options(self): CustomQueryMixin.edns_options = self.custom_query_mixin_edns_options_orig[:] # None args = ['-c', '', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) arghelper.build_parser('probe', args) arghelper.set_kwargs() self.assertEqual(len(CustomQueryMixin.edns_options), 0) CustomQueryMixin.edns_options = self.custom_query_mixin_edns_options_orig[:] # Only DNS cookie args = ['example.com'] arghelper = ArgHelper(self.resolver, self.logger) arghelper.build_parser('probe', args) arghelper.set_kwargs() self.assertEqual(set([o.otype for o in CustomQueryMixin.edns_options]), set([10])) CustomQueryMixin.edns_options = self.custom_query_mixin_edns_options_orig[:] # 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.set_kwargs() self.assertEqual(set([o.otype for o in CustomQueryMixin.edns_options]), set([3, 8, 10])) CustomQueryMixin.edns_options = self.custom_query_mixin_edns_options_orig[:]
def test_ceiling(self): args = ['-a', 'com', 'example.com'] arghelper = ArgHelper(self.resolver, self.logger) arghelper.build_parser('probe', 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.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.set_kwargs() self.assertIsNone(arghelper.ceiling)