"""WizardKit: Network test functions""" # vim: sts=2 sw=2 ts=2 import logging from wk.net import ( connected_to_private_network, ping, show_valid_addresses, speedtest, ) from wk.ui.cli import ( # TODO: This is lazy TryAndPrint, pause, print_warning, ) # STATIC VARIABLES LOG = logging.getLogger(__name__) # Functions def network_test() -> None: """Run network tests.""" LOG.info('Network Test') try_and_print = TryAndPrint() result = try_and_print.run( message='Network connection...', function=connected_to_private_network, msg_good='OK', raise_on_error=True, ) # 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__': print("This file is not meant to be called directly.")