def test_config(self): test_file_name = "test.json" test_dict = {"key": "value"} write_config(config_dict=test_dict, config_file_to_write=test_file_name) test_dict_reload = load_config(config_file_to_load=test_file_name) self.assertDictEqual(test_dict, test_dict_reload) test_no_dict = load_config(config_file_to_load="no.json") self.assertDictEqual(test_no_dict, {}) os.remove(test_file_name)
def command_line_parser(): """ Main function primarly used for the command line interface """ parser = argparse.ArgumentParser(prog="pyauthenticator") config_dict = load_config() parser.add_argument( "service", help="Service to generate optauth code for. Available services are: " + str(list_services(config_dict=config_dict)), ) parser.add_argument( "-qr", "--qrcode", action="store_true", help="Generate qrcode as <service.png> file.", ) parser.add_argument( "-a", "--add", help="Add service by providing the qrcode png file as additional argument.", ) args = parser.parse_args() if args.qrcode: generate_qrcode(key=args.service, config_dict=config_dict) elif args.add: add_service( key=args.service, qrcode_png_file_name=args.add, config_dict=config_dict ) print(args.service, "added.") else: print(get_two_factor_code(key=args.service, config_dict=config_dict))
def test_add_service(self): config_file = "test_config.json" add_service(key="test", qrcode_png_file_name=self.qr_code_png, config_dict={}, config_file_to_write=config_file) config_reload = load_config(config_file_to_load=config_file) self.assertDictEqual(config_reload, self.config_dict) os.remove(config_file)
def write_qrcode_to_file(service, file_name=None): """ Write qrcode to file to scan it with a mobile application Args: service (str): lower case name of the service file_name (str/ None): default file name <service.png> """ generate_qrcode(key=service, config_dict=load_config(), file_name=file_name)
def get_two_factor_code(service): """ Generate two factor authentication code Args: service (str): lower case name of the service Returns: str: two factor authentication code """ return get_two_factor_code_internal( key=service, config_dict=load_config(), )