def test_get_user_list(self): """Test the shared get_user_list() method.""" user1 = UserData() user1.name = "user1" user1.uid = 123 user1.groups = ["foo", "bar"] user1.gid = 321 user1.homedir = "user1_home" user1.password = "******" user1.is_crypted = False user1.lock = False user1.shell = "zsh" user1.gecos = "some stuff" user2 = UserData() user2.name = "user2" user2.uid = 456 user2.groups = ["baz", "bar"] user2.gid = 654 user2.homedir = "user2_home" user2.password = "******" user2.is_crypted = True user2.lock = False user2.shell = "csh" user2.gecos = "some other stuff" users_module_mock = Mock() users_module_mock.Users = UserData.to_structure_list([user1, user2]) user_data_list = get_user_list(users_module_mock) assert len(user_data_list) == 2 assert isinstance(user_data_list[0], UserData) assert isinstance(user_data_list[1], UserData) assert compare_data(user_data_list[0], user1) assert compare_data(user_data_list[1], user2) user_data_list = get_user_list(users_module_mock, add_default=True) assert len(user_data_list) == 2 assert isinstance(user_data_list[0], UserData) assert isinstance(user_data_list[1], UserData) assert compare_data(user_data_list[0], user1) assert compare_data(user_data_list[1], user2) user_data_list = get_user_list(users_module_mock, add_default=True, add_if_not_empty=True) default_added_user_data = UserData() default_added_user_data.set_admin_priviledges(True) assert len(user_data_list) == 3 assert isinstance(user_data_list[0], UserData) assert isinstance(user_data_list[1], UserData) assert isinstance(user_data_list[2], UserData) assert compare_data(user_data_list[0], default_added_user_data) assert compare_data(user_data_list[1], user1) assert compare_data(user_data_list[2], user2)
def get_user_list_test(self): """Test the shared get_user_list() method.""" user1 = UserData() user1.name = "user1" user1.uid = 123 user1.groups = ["foo", "bar"] user1.gid = 321 user1.homedir = "user1_home" user1.password = "******" user1.is_crypted = False user1.lock = False user1.shell = "zsh" user1.gecos = "some stuff" user2 = UserData() user2.name = "user2" user2.uid = 456 user2.groups = ["baz", "bar"] user2.gid = 654 user2.homedir = "user2_home" user2.password = "******" user2.is_crypted = True user2.lock = False user2.shell = "csh" user2.gecos = "some other stuff" users_module_mock = Mock() users_module_mock.Users = UserData.to_structure_list([user1, user2]) user_data_list = get_user_list(users_module_mock) self.assertEqual(len(user_data_list), 2) self.assertIsInstance(user_data_list[0], UserData) self.assertIsInstance(user_data_list[1], UserData) self.assertTrue(compare_data(user_data_list[0], user1)) self.assertTrue(compare_data(user_data_list[1], user2)) user_data_list = get_user_list(users_module_mock, add_default=True) self.assertEqual(len(user_data_list), 2) self.assertIsInstance(user_data_list[0], UserData) self.assertIsInstance(user_data_list[1], UserData) self.assertTrue(compare_data(user_data_list[0], user1)) self.assertTrue(compare_data(user_data_list[1], user2)) user_data_list = get_user_list(users_module_mock, add_default=True, add_if_not_empty=True) self.assertEqual(len(user_data_list), 3) self.assertIsInstance(user_data_list[0], UserData) self.assertIsInstance(user_data_list[1], UserData) self.assertIsInstance(user_data_list[2], UserData) self.assertTrue(compare_data(user_data_list[0], UserData())) self.assertTrue(compare_data(user_data_list[1], user1)) self.assertTrue(compare_data(user_data_list[2], user2))
def _ksdata_to_user_data(self, user_ksdata): """Apply kickstart user command data to UserData instance. :param user_ksdata: data for the kickstart user command :return: UserData instance with kickstart data applied """ user_data = UserData() user_data.name = user_ksdata.name user_data.groups = user_ksdata.groups # To denote that a value has not been set: # - kickstart uses None # - our DBus API uses -1 # -> as user data is -1 by default ve only set it if kickstart has something, # that is not None # We need to make sure we correctly convert between these two. if user_ksdata.uid is not None: user_data.uid = user_ksdata.uid if user_ksdata.gid is not None: user_data.gid = user_ksdata.gid user_data.homedir = user_ksdata.homedir user_data.password = user_ksdata.password user_data.is_crypted = user_ksdata.isCrypted user_data.lock = user_ksdata.lock # make sure the user account is locked by default unless a password # is set in kickstart if not user_ksdata.password: log.debug( "user (%s) specified in kickstart without password, locking account", user_ksdata.name) user_data.lock = True user_data.shell = user_ksdata.shell user_data.gecos = user_ksdata.gecos return user_data
def test_eq(self): """Test that the __eq__() method works correctly for UserData instances.""" # the comparison is name based user_data_1 = UserData() user_data_1.name = "foo" user_data_2 = UserData() user_data_2.name = "bar" user_data_3 = UserData() user_data_3.name = "foo" assert user_data_1 == user_data_3 assert not (user_data_1 == user_data_2) assert not (user_data_2 == user_data_1) assert not (user_data_2 == user_data_3) # now try changing the name on existing instance user_data_1.name = "bar" user_data_2.name = "foo" user_data_3.name = "foo" assert not (user_data_1 == user_data_2) assert not (user_data_1 == user_data_3) assert user_data_2 == user_data_3 assert user_data_3 == user_data_2 # only name is used, other attributes should not influence the comparison user_data_a = UserData() user_data_a.name = "foo" user_data_a.uid = 1 user_data_a.gid = 1 user_data_a.homedir = "/foo" user_data_b = UserData() user_data_b.name = "foo" user_data_b.uid = 2 user_data_b.gid = 2 user_data_b.homedir = "/bar" assert user_data_a == user_data_b
def test_set_user_list(self): """Test the shared set_user_list() method.""" user1 = UserData() user1.name = "user1" user1.uid = 123 user1.groups = ["foo", "bar"] user1.gid = 321 user1.homedir = "user1_home" user1.password = "******" user1.is_crypted = False user1.lock = False user1.shell = "zsh" user1.gecos = "some stuff" user2 = UserData() user2.name = "user2" user2.uid = 456 user2.groups = ["baz", "bar"] user2.gid = 654 user2.homedir = "user2_home" user2.password = "******" user2.is_crypted = True user2.lock = False user2.shell = "csh" user2.gecos = "some other stuff" users_module_mock = Mock() set_user_list(users_module_mock, [user1, user2]) user_data_list = users_module_mock.SetUsers.call_args[0][0] assert len(user_data_list) == 2 assert user_data_list[0] == UserData.to_structure(user1) assert user_data_list[1] == UserData.to_structure(user2) user1.name = "" set_user_list(users_module_mock, [user1, user2], remove_unset=True) user_data_list = users_module_mock.SetUsers.call_args[0][0] assert len(user_data_list) == 1 assert user_data_list[0] == UserData.to_structure(user2)