Add hidden debug option, which prints debug information
This commit is contained in:
parent
abe85d85ff
commit
308c530f07
|
@ -46,7 +46,7 @@ USER_AGENT = None
|
|||
SOURCE = None
|
||||
SHUTDOWN_EVENT = FakeShutdownEvent()
|
||||
SCHEME = 'http'
|
||||
|
||||
DEBUG = False
|
||||
|
||||
# Used for bound_interface
|
||||
SOCKET_SOCKET = socket.socket
|
||||
|
@ -117,10 +117,12 @@ except ImportError:
|
|||
|
||||
try:
|
||||
from argparse import ArgumentParser as ArgParser
|
||||
from argparse import SUPPRESS as ARG_SUPPRESS
|
||||
PARSER_TYPE_INT = int
|
||||
PARSER_TYPE_STR = str
|
||||
except ImportError:
|
||||
from optparse import OptionParser as ArgParser
|
||||
from optparse import SUPPRESS_HELP as ARG_SUPPRESS
|
||||
PARSER_TYPE_INT = 'int'
|
||||
PARSER_TYPE_STR = 'string'
|
||||
|
||||
|
@ -317,6 +319,10 @@ def build_request(url, data=None, headers={}):
|
|||
int(timeit.time.time() * 1000))
|
||||
|
||||
headers['User-Agent'] = USER_AGENT
|
||||
|
||||
printer('%s %s' % (('GET', 'POST')[bool(data)], final_url),
|
||||
debug=True)
|
||||
|
||||
return Request(final_url, data=data, headers=headers)
|
||||
|
||||
|
||||
|
@ -612,6 +618,8 @@ class Speedtest(object):
|
|||
|
||||
uh.close()
|
||||
|
||||
printer(''.encode().join(configxml), debug=True)
|
||||
|
||||
try:
|
||||
root = ET.fromstring(''.encode().join(configxml))
|
||||
server_config = root.find('server-config').attrib
|
||||
|
@ -759,6 +767,8 @@ class Speedtest(object):
|
|||
except KeyError:
|
||||
self.servers[d] = [attrib]
|
||||
|
||||
printer(''.encode().join(serversxml), debug=True)
|
||||
|
||||
del root
|
||||
del serversxml
|
||||
del elements
|
||||
|
@ -840,6 +850,7 @@ class Speedtest(object):
|
|||
continue
|
||||
break
|
||||
|
||||
printer(self.closest, debug=True)
|
||||
return self.closest
|
||||
|
||||
def get_best_server(self, servers=[]):
|
||||
|
@ -890,6 +901,7 @@ class Speedtest(object):
|
|||
self.results.server = best
|
||||
|
||||
self.best.update(best)
|
||||
printer(best, debug=True)
|
||||
return best
|
||||
|
||||
def download(self, callback=None):
|
||||
|
@ -1065,6 +1077,8 @@ def parse_args():
|
|||
'with speedtest.net operated servers')
|
||||
parser.add_argument('--version', action='store_true',
|
||||
help='Show the version number and exit')
|
||||
parser.add_argument('--debug', action='store_true',
|
||||
help=ARG_SUPPRESS, default=ARG_SUPPRESS)
|
||||
|
||||
options = parser.parse_args()
|
||||
if isinstance(options, tuple):
|
||||
|
@ -1091,17 +1105,25 @@ def validate_optional_args(args):
|
|||
'unavailable' % (info[0], arg))
|
||||
|
||||
|
||||
def printer(string, quiet=False, **kwargs):
|
||||
def printer(string, quiet=False, debug=False, **kwargs):
|
||||
"""Helper function to print a string only when not quiet"""
|
||||
|
||||
if debug and not DEBUG:
|
||||
return
|
||||
|
||||
if debug:
|
||||
out = '\033[1;30mDEBUG: %s\033[0m' % string
|
||||
else:
|
||||
out = string
|
||||
|
||||
if not quiet:
|
||||
print_(string, **kwargs)
|
||||
print_(out, **kwargs)
|
||||
|
||||
|
||||
def shell():
|
||||
"""Run the full speedtest.net test"""
|
||||
|
||||
global SHUTDOWN_EVENT, SOURCE, SCHEME
|
||||
global SHUTDOWN_EVENT, SOURCE, SCHEME, DEBUG
|
||||
SHUTDOWN_EVENT = threading.Event()
|
||||
|
||||
signal.signal(signal.SIGINT, ctrl_c)
|
||||
|
@ -1130,13 +1152,17 @@ def shell():
|
|||
if args.secure:
|
||||
SCHEME = 'https'
|
||||
|
||||
debug = getattr(args, 'debug', False)
|
||||
if debug:
|
||||
DEBUG = True
|
||||
|
||||
if args.simple or args.csv or args.json:
|
||||
quiet = True
|
||||
else:
|
||||
quiet = False
|
||||
|
||||
# Don't set a callback if we are running quietly
|
||||
if quiet:
|
||||
if quiet or debug:
|
||||
callback = None
|
||||
else:
|
||||
callback = print_dots
|
||||
|
@ -1212,13 +1238,13 @@ def shell():
|
|||
printer('Hosted by %(sponsor)s (%(name)s) [%(d)0.2f km]: '
|
||||
'%(latency)s ms' % results.server, quiet)
|
||||
|
||||
printer('Testing download speed', quiet, end='')
|
||||
printer('Testing download speed', quiet, end=('\n', '')[bool(callback)])
|
||||
speedtest.download(callback=callback)
|
||||
printer('Download: %0.2f M%s/s' %
|
||||
((results.download / 1000 / 1000) * args.units[1], args.units[0]),
|
||||
quiet)
|
||||
|
||||
printer('Testing upload speed', quiet, end='')
|
||||
printer('Testing upload speed', quiet, end=('\n', '')[bool(callback)])
|
||||
speedtest.upload(callback=callback)
|
||||
printer('Upload: %0.2f M%s/s' %
|
||||
((results.upload / 1000 / 1000) * args.units[1], args.units[0]),
|
||||
|
|
Loading…
Reference in New Issue