or for this guy, driving it with mock raw_input/getpass should cover all three of the above