def test_change_password_error(self): """ UserManagement.add_user should raise a UserManagementError if chpasswd fails. """ provider = FakeUserProvider(popen=MockPopen("", return_codes=[0, 1])) provider.popen.err_out = b"PAM is unhappy" management = UserManagement(provider=provider) with self.assertRaises(UserManagementError) as e: management.add_user("jdoe", u"John Doe", "password", False, None, None, None, None) expected = "Error setting password for user {}.\n {}".format( b"jdoe", b"PAM is unhappy") self.assertEqual(expected, str(e.exception))
def test_add_user(self): """L{UserManagement.add_user} should use C{adduser} to add users.""" groups = [("users", "x", 1001, [])] provider = FakeUserProvider(groups=groups, popen=MockPopen("")) management = UserManagement(provider=provider) management.add_user("jdoe", "John Doe", "password", False, "users", "Room 101", "+123456", None) self.assertEqual(len(provider.popen.popen_inputs), 2) self.assertEqual(provider.popen.popen_inputs[0], ["adduser", "jdoe", "--disabled-password", "--gecos", "John Doe,Room 101,+123456,", "--gid", "1001"]) chpasswd = provider.popen.popen_inputs[1] self.assertEqual(len(chpasswd), 1, chpasswd) self.assertEqual(b"jdoe:password", provider.popen.received_input)
def test_add_user(self): """L{UserManagement.add_user} should use C{adduser} to add users.""" groups = [("users", "x", 1001, [])] provider = FakeUserProvider(groups=groups, popen=MockPopen("")) management = UserManagement(provider=provider) management.add_user("jdoe", "John Doe", "password", False, "users", "Room 101", "+123456", None) self.assertEqual(len(provider.popen.popen_inputs), 2) self.assertEqual(provider.popen.popen_inputs[0], [ "adduser", "jdoe", "--disabled-password", "--gecos", "John Doe,Room 101,+123456,", "--gid", "1001" ]) usermod = provider.popen.popen_inputs[1] self.assertEqual(len(usermod), 4, usermod) password = guess_password(usermod[2], "password") self.assertEqual(usermod, ["usermod", "-p", password, "jdoe"])