¿Cómo redirigir los datos a un "getpass" como la entrada de contraseña?

Estoy escurriendo un script de Python para ejecutar algún comando. Algunos de esos comandos requieren que el usuario ingrese la contraseña, intenté ingresar datos en su stdin, pero no funciona, aquí hay dos programas simples de Python que representan el problema

input.py

import getpass

print raw_input('text1:')
print getpass.getpass('pass1:')
print getpass.getpass('pass2:')

put_data.py

import subprocess
import getpass

def run(cmd, input=None):
    stdin=None
    if input:
        stdin=subprocess.PIPE
    p = subprocess.Popen(cmd, shell=True, stdin=stdin)
    p.communicate(input)
    if p.returncode:
        raise Exception('Failed to run command %r' % cmd)

input ="""text1
password1
password2
"""
run('python test.py', input)

Y aquí está la salida.

[guest@host01 ~]# python put_data.py 
text1:text1
pass1:

Simplemente se detiene allí en el campo pass1. Aquí está el problema, ¿por qué no puedo poner datos en stdin para alimentar datos al campo de contraseña? ¿Cómo puedo escribir datos en los campos de contraseña?

Respuestas a la pregunta(2)

Su respuesta a la pregunta