Added network_test()
This commit is contained in:
parent
ce3a98028a
commit
100757ba69
3 changed files with 49 additions and 14 deletions
|
|
@ -10,11 +10,6 @@ def main():
|
||||||
state = wk.hw.diags.State()
|
state = wk.hw.diags.State()
|
||||||
wk.hw.diags.main_menu()
|
wk.hw.diags.main_menu()
|
||||||
|
|
||||||
# Done
|
|
||||||
print('')
|
|
||||||
print('Done.')
|
|
||||||
wk.std.pause('Press Enter to exit...')
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,15 @@ from docopt import docopt
|
||||||
|
|
||||||
from wk.cfg.main import KIT_NAME_FULL
|
from wk.cfg.main import KIT_NAME_FULL
|
||||||
from wk.exe import run_program
|
from wk.exe import run_program
|
||||||
|
from wk.net import (
|
||||||
|
connected_to_private_network,
|
||||||
|
ping,
|
||||||
|
show_valid_addresses,
|
||||||
|
speedtest,
|
||||||
|
)
|
||||||
from wk.std import (
|
from wk.std import (
|
||||||
Menu,
|
Menu,
|
||||||
|
TryAndPrint,
|
||||||
clear_screen,
|
clear_screen,
|
||||||
color_string,
|
color_string,
|
||||||
pause,
|
pause,
|
||||||
|
|
@ -132,11 +139,39 @@ def main_menu():
|
||||||
selection = menu.advanced_select()
|
selection = menu.advanced_select()
|
||||||
if 'Audio Test' in selection:
|
if 'Audio Test' in selection:
|
||||||
audio_test()
|
audio_test()
|
||||||
|
if 'Network Test' in selection:
|
||||||
|
network_test()
|
||||||
elif 'Quit' in selection:
|
elif 'Quit' in selection:
|
||||||
break
|
break
|
||||||
print(f'Sel: {selection}')
|
|
||||||
print('')
|
|
||||||
pause()
|
def network_test():
|
||||||
|
"""Run network tests."""
|
||||||
|
clear_screen()
|
||||||
|
try_and_print = TryAndPrint()
|
||||||
|
result = try_and_print.run(
|
||||||
|
'Network connection...', connected_to_private_network, msg_good='OK')
|
||||||
|
|
||||||
|
# Bail if not connected
|
||||||
|
if result['Failed']:
|
||||||
|
print_warning('Please connect to a network and try again')
|
||||||
|
pause('Press Enter to return to main menu...')
|
||||||
|
return
|
||||||
|
|
||||||
|
# Show IP address(es)
|
||||||
|
show_valid_addresses()
|
||||||
|
|
||||||
|
# Ping tests
|
||||||
|
try_and_print.run(
|
||||||
|
'Internet connection...', ping, msg_good='OK', addr='8.8.8.8')
|
||||||
|
try_and_print.run(
|
||||||
|
'DNS resolution...', ping, msg_good='OK', addr='google.com')
|
||||||
|
|
||||||
|
# Speedtest
|
||||||
|
try_and_print.run('Speedtest...', speedtest)
|
||||||
|
|
||||||
|
# Done
|
||||||
|
pause('Press Enter to return to main menu...')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import re
|
||||||
import psutil
|
import psutil
|
||||||
|
|
||||||
from wk.exe import run_program
|
from wk.exe import run_program
|
||||||
from wk.std import show_data
|
from wk.std import GenericError, show_data
|
||||||
|
|
||||||
|
|
||||||
# REGEX
|
# REGEX
|
||||||
|
|
@ -18,16 +18,21 @@ REGEX_VALID_IP = re.compile(
|
||||||
|
|
||||||
|
|
||||||
# Functions
|
# Functions
|
||||||
def is_connected():
|
def connected_to_private_network():
|
||||||
"""Check for a valid private IP."""
|
"""Check if connected to a private network.
|
||||||
|
|
||||||
|
This checks for a valid private IP assigned to this system.
|
||||||
|
If one isn't found then an exception is raised.
|
||||||
|
"""
|
||||||
devs = psutil.net_if_addrs()
|
devs = psutil.net_if_addrs()
|
||||||
for dev in devs.values():
|
for dev in devs.values():
|
||||||
for family in dev:
|
for family in dev:
|
||||||
if REGEX_VALID_IP.search(family.address):
|
if REGEX_VALID_IP.search(family.address):
|
||||||
# Valid IP found
|
# Valid IP found
|
||||||
return True
|
return
|
||||||
# Else
|
|
||||||
return False
|
# No valid IP found
|
||||||
|
raise GenericError('Not connected to a network')
|
||||||
|
|
||||||
|
|
||||||
def ping(addr='google.com'):
|
def ping(addr='google.com'):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue