See the commit message or ticket.

This is a nuisance when writing tests for interactive prompting.

https://fedorahosted.org/freeipa/ticket/3824


--
PetrĀ³
"Look! Look! A nice round patch number!"
From 56fa81005fb872788ca9659236aaf687b34ef90e Mon Sep 17 00:00:00 2001
From: Petr Viktorin <pvikt...@redhat.com>
Date: Tue, 30 Jul 2013 13:07:18 +0200
Subject: [PATCH] Fix installutils.get_password without a TTY

If stdin is a TTY, ipaserver.install.installutils ises getpass and all
is well. Without a TTY, though, there were two problems:

* The prompt was not printed
* On end of file, an empty string was returned, which caused read_password
  to enter an infinite loop.

Fix both problems.

https://fedorahosted.org/freeipa/ticket/3824
---
 ipaserver/install/installutils.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/ipaserver/install/installutils.py b/ipaserver/install/installutils.py
index 6a6841a110b531be0c8445eaa6f861d627340d30..97f4c684955a36228c0863a859c239b36e13ad6f 100644
--- a/ipaserver/install/installutils.py
+++ b/ipaserver/install/installutils.py
@@ -256,7 +256,12 @@ def get_password(prompt):
     if os.isatty(sys.stdin.fileno()):
         return getpass.getpass(prompt)
     else:
-        return sys.stdin.readline().rstrip()
+        print prompt,
+        sys.stdout.flush()
+        line = sys.stdin.readline()
+        if not line:
+            raise EOFError()
+        return line.rstrip()
 
 def _read_password_default_validator(password):
     if len(password) < 8:
-- 
1.8.3.1

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to