def test_getPassword(self): """ Get the password using L{twisted.conch.client.default.SSHUserAuthClient.getPassword} """ class FakeTransport: def __init__(self, host): self.transport = self self.host = host def getPeer(self): return self options = ConchOptions() client = SSHUserAuthClient(b"user", options, None) client.transport = FakeTransport("127.0.0.1") def getpass(prompt): self.assertEqual(prompt, "[email protected]'s password: "******"bad password" self.patch(default.getpass, "getpass", getpass) d = client.getPassword() d.addCallback(self.assertEqual, b"bad password") return d
def getPassword(self, prompt=None): """ Get the password from the client options, is specified. """ if "password" in self.options: return succeed(self.options["password"]) return SSHUserAuthClient.getPassword(self, prompt)
def test_getPasswordPrompt(self): """ Get the password using L{twisted.conch.client.default.SSHUserAuthClient.getPassword} using a different prompt. """ options = ConchOptions() client = SSHUserAuthClient(b"user", options, None) prompt = b"Give up your password" def getpass(p): self.assertEqual(p, nativeString(prompt)) return "bad password" self.patch(default.getpass, "getpass", getpass) d = client.getPassword(prompt) d.addCallback(self.assertEqual, b"bad password") return d
def test_getPasswordConchError(self): """ Get the password using L{twisted.conch.client.default.SSHUserAuthClient.getPassword} and trigger a {twisted.conch.error import ConchError}. """ options = ConchOptions() client = SSHUserAuthClient(b"user", options, None) def getpass(prompt): raise KeyboardInterrupt("User pressed CTRL-C") self.patch(default.getpass, 'getpass', getpass) stdout, stdin = sys.stdout, sys.stdin d = client.getPassword(b'?') @d.addErrback def check_sys(fail): self.assertEqual( [stdout, stdin], [sys.stdout, sys.stdin]) return fail self.assertFailure(d, ConchError)
def getPassword(self, prompt = None): if "password" in self.options: return succeed(self.options["password"]) return SSHUserAuthClient.getPassword(self, prompt)