diff -r 0b2d4089180c Lib/test/test_getpass.py --- a/Lib/test/test_getpass.py Wed Apr 10 17:01:38 2013 -0400 +++ b/Lib/test/test_getpass.py Thu Apr 11 15:22:41 2013 -0500 @@ -1,11 +1,19 @@ import getpass import os -import termios import unittest from io import StringIO from unittest import mock from test import support +try: + import termios +except ImportError: + termios = None +try: + import pwd +except ImportError: + pwd = None + @mock.patch('os.environ') class GetpassGetuserTest(unittest.TestCase): @@ -16,7 +24,10 @@ def test_username_priorities_of_env_values(self, environ): environ.get.return_value = None - getpass.getuser() + try: + getpass.getuser() + except ImportError: # in case there's no pwd module + pass self.assertEqual( environ.get.call_args_list, [mock.call(x) for x in ('LOGNAME', 'USER', 'LNAME', 'USERNAME')]) @@ -24,13 +35,16 @@ def test_username_falls_back_to_pwd(self, environ): expected_name = 'some_name' environ.get.return_value = None - with mock.patch('os.getuid') as uid, \ - mock.patch('pwd.getpwuid') as getpw: - uid.return_value = 42 - getpw.return_value = [expected_name] - self.assertEqual(expected_name, - getpass.getuser()) - getpw.assert_called_once_with(42) + if pwd: + with mock.patch('os.getuid') as uid, \ + mock.patch('pwd.getpwuid') as getpw: + uid.return_value = 42 + getpw.return_value = [expected_name] + self.assertEqual(expected_name, + getpass.getuser()) + getpw.assert_called_once_with(42) + else: + self.assertRaises(ImportError, getpass.getuser) class GetpassRawinputTest(unittest.TestCase):