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)
Exemple #2
0
    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))
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
0
    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)