Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
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))
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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(),
    )