def new_password(cls, purpose: str = "master password") -> str: """Prompt the user to enter and confirm a new password.""" password_1 = pwd_prompt(f"Enter a new {purpose}: ") if password_1 == GENERATE: pwd_bit_strength, password_1 = MasterKey.generate_master_password() m_print([ f"Generated a {pwd_bit_strength}-bit password:"******"Write down this password and dispose of the copy once you remember it.", "Press <Enter> to continue." ], manual_proceed=True, box=True, head=1, tail=1) reset_terminal() password_2 = password_1 else: password_2 = pwd_prompt(f"Confirm the {purpose}: ", repeat=True) if password_1 == password_2: return password_1 m_print("Error: Passwords did not match. Try again.", head=1, tail=1) print_on_previous_line(delay=1, reps=7) return cls.new_password(purpose)
def new_password(cls, purpose="master password"): password_1 = pwd_prompt(f"Enter a new {purpose}: ", '┌', '┐') password_2 = pwd_prompt(f"Confirm the {purpose}: ", '├', '┤') if password_1 == password_2: return password_1 else: return cls.new_password(purpose)
def new_password(cls, purpose: str = "master password") -> str: """Prompt the user to enter and confirm a new password.""" password_1 = pwd_prompt(f"Enter a new {purpose}: ") password_2 = pwd_prompt(f"Confirm the {purpose}: ", repeat=True) if password_1 == password_2: return password_1 else: m_print("Error: Passwords did not match. Try again.", head=1, tail=1) print_on_previous_line(delay=1, reps=7) return cls.new_password(purpose)
def new_password(cls, purpose: str = "master password") -> str: """Prompt user to enter and confirm a new password.""" password_1 = pwd_prompt(f"Enter a new {purpose}: ", '┌', '┐') password_2 = pwd_prompt(f"Confirm the {purpose}: ", '├', '┤') if password_1 == password_2: return password_1 else: c_print("Error: Passwords did not match. Try again.", head=1, tail=1) time.sleep(1) print_on_previous_line(reps=7) return cls.new_password(purpose)
def test_pwd_prompt(self): # Setup o_getpass = getpass.getpass getpass.getpass = lambda x: 'testpwd' # Test self.assertEqual(pwd_prompt("test prompt", '┌', '┐'), 'testpwd') # Teardown getpass.getpass = o_getpass
def get_password(cls, purpose: str = "master password") -> str: """Load password from user.""" return pwd_prompt(f"Enter {purpose}: ", '┌', '┐')
def test_pwd_prompt(self, _): self.assertEqual(pwd_prompt("test prompt"), 'test_password')
def get_password(cls, purpose: str = "master password") -> str: """Prompt the user to enter a password.""" return pwd_prompt(f"Enter {purpose}: ")
def test_pwd_prompt(self, _: Any) -> None: self.assertEqual(pwd_prompt("test prompt"), 'test_password')
def get_password(cls, purpose="master password"): return pwd_prompt(f"Enter {purpose}: ", '┌', '┐')
def test_pwd_prompt(self): self.assertEqual(pwd_prompt("test prompt"), 'testpwd')