Esempio n. 1
0
    def test_getHomeFolder_non_existing_user(self):
        """
        An error is raised by getHomeFolder if account does not exists.
        """
        with self.assertRaises(CompatError) as context:
            system_users.getHomeFolder(username=u'non-existent-patricia')

        self.assertCompatError(1014, context.exception)
Esempio n. 2
0
    def test_getHomeFolder_nt_existing_user_no_token(self):
        """
        An error is raised if user exists but no token is provided.
        """
        username = TEST_ACCOUNT_USERNAME

        with self.assertRaises(CompatError) as context:
            system_users.getHomeFolder(username)

        self.assertCompatError(1014, context.exception)
Esempio n. 3
0
    def test_getHomeFolder_no_capabilities(self):
        """
        An error is raised when trying to get home folder when we don't
        have the required capabilities.
        """
        if process_capabilities.get_home_folder:
            raise self.skipTest()

        with self.assertRaises(CompatError) as context:
            system_users.getHomeFolder(username=TEST_ACCOUNT_USERNAME)

        self.assertEqual(1014, context.exception.event_id)
Esempio n. 4
0
    def test_getHomeFolder_nt_custom_user_no_token(self):
        """
        An error is raised if no token is provided and the username differs
        from the current/service username.
        """
        test_user = mk.getTestUser(u'other')

        with self.assertRaises(CompatError) as context:
            system_users.getHomeFolder(test_user.name)

        self.assertCompatError(1014, context.exception)
        self.assertContains(
            'Invalid username/token combination.', context.exception.message)
Esempio n. 5
0
    def test_getHomeFolder_osx(self):
        """
        Check getHomeFolder for OSX.
        """
        home_folder = system_users.getHomeFolder(
            username=mk.username)

        self.assertEqual(u'/Users/' + mk.username, home_folder)
        self.assertIsInstance(str, home_folder)
Esempio n. 6
0
    def test_getHomeFolder_osx(self):
        """
        Check getHomeFolder for OSX.
        """
        home_folder = system_users.getHomeFolder(
            username=TEST_ACCOUNT_USERNAME)

        self.assertEqual(u'/Users/%s' % TEST_ACCOUNT_USERNAME, home_folder)
        self.assertIsInstance(text_type, home_folder)
Esempio n. 7
0
    def test_getHomeFolder_nt(self):
        """
        Check getHomeFolder for Windows.
        """
        home_folder = system_users.getHomeFolder(
            username=mk.username)

        self.assertContains(
            mk.username.lower(), home_folder.lower())
        self.assertIsInstance(str, home_folder)
Esempio n. 8
0
 def setUpClass(cls):
     super(TestElevatedLocalTestFilesystem, cls).setUpClass()
     cls.user = compat_mk.getTestUser('normal')
     home_folder_path = system_users.getHomeFolder(
         username=cls.user.name, token=cls.user.token)
     cls.avatar = compat_mk.makeFilesystemOSAvatar(
         name=cls.user.name,
         home_folder_path=home_folder_path,
         token=cls.user.token,
         )
Esempio n. 9
0
    def test_getHomeFolder_nt_no_token(self):
        """
        If no token is provided, it can still be successfully used for getting
        home folder for current account.
        """
        username = mk.username

        home_folder = system_users.getHomeFolder(username)

        self.assertContains(username.lower(), home_folder.lower())
        self.assertIsInstance(text_type, home_folder)
Esempio n. 10
0
    def test_getHomeFolder_linux(self):
        """
        On Linux the OS accounts are based in '/home/' folder.
        """
        if not sys.platform.startswith('linux'):
            raise self.skipTest()

        home_folder = system_users.getHomeFolder(
            username=TEST_ACCOUNT_USERNAME)

        self.assertEqual(u'/home/%s' % TEST_ACCOUNT_USERNAME, home_folder)
        self.assertIsInstance(text_type, home_folder)
Esempio n. 11
0
    def test_getHomeFolder_good(self):
        """
        If a valid token is provided the home folder path can be retrieved
        for any other account, as long as the process has the required
        capabilities.
        """
        test_user = mk.getTestUser(u'domain')

        home_folder = system_users.getHomeFolder(
            username=test_user.name, token=test_user.token)

        self.assertContains(test_user.name.lower(), home_folder.lower())
        self.assertIsInstance(text_type, home_folder)
Esempio n. 12
0
    def test_getHomeFolder_posix(self):
        """
        Check getHomeFolder on Linux and Unix.
        """
        home_folder = system_users.getHomeFolder(
            username=mk.username)

        # For buildslave, home folder is in srv.
        if mk.username == 'buildslave':
            self.assertEqual(u'/srv/' + mk.username, home_folder)
        else:
            self.assertEqual(u'/home/' + mk.username, home_folder)

        self.assertIsInstance(text_type, home_folder)
Esempio n. 13
0
    def test_getHomeFolder_linux(self):
        """
        Check getHomeFolder on Linux.
        """
        if not sys.platform.startswith('linux'):
            raise self.skipTest()

        home_folder = system_users.getHomeFolder(
            username=mk.username)

        # For buildslave, home folder is in srv.
        if mk.username == 'buildslave':
            self.assertEqual(u'/srv/' + mk.username, home_folder)
        else:
            self.assertEqual(u'/home/' + mk.username, home_folder)

        self.assertIsInstance(str, home_folder)
Esempio n. 14
0
    def setUpClass(cls):
        # FIXME:924:
        # Disabled when we can not find the home folder path.
        if not process_capabilities.get_home_folder:
            raise cls.skipTest()

        super(FileSystemTestCase, cls).setUpClass()

        cls.os_user = cls.setUpTestUser()

        home_folder_path = system_users.getHomeFolder(
            username=cls.os_user.name, token=cls.os_user.token)

        cls.avatar = mk.makeFilesystemOSAvatar(
            name=cls.os_user.name,
            home_folder_path=home_folder_path,
            token=cls.os_user.token,
            )
        cls.filesystem = LocalFilesystem(avatar=cls.avatar)
Esempio n. 15
0
    def test_getHomeFolder_nt_good(self):
        """
        If a valid token is provided the home folder path can be retrieved
        for it's corresponding account, as long as the process has the
        required capabilities.
        """
        test_user = TestUser(
            name=mk.string(),
            password=mk.string(),
            create_local_profile=True,
            )
        os_administration.addUser(test_user)

        home_folder = system_users.getHomeFolder(
            username=test_user.name, token=test_user.token)

        self.assertContains(
            test_user.name.lower(), home_folder.lower())
        self.assertIsInstance(text_type, home_folder)
        self.addCleanup(os_administration.deleteUser, test_user)
Esempio n. 16
0
    def test_getHomeFolder_nt_no_existing_profile(self):
        """
        On Windows, if user has no local home folder it will be created
        automatically when getting the home folder path.

        This test creates a temporary account and in the end it deletes
        the account and it's home folder.
        """
        test_user = TestUser(
            name=u'no-home',
            password=mk.string(),
            create_local_profile=False,
            )
        # Unfortunately there is no API to get default base home path for
        # users, we need to rely on an existing pattern.
        home_base = os.path.dirname(os.getenv('USERPROFILE'))
        expected_home_path = os.path.join(home_base, test_user.name)
        expected_home_segments = mk.fs.getSegmentsFromRealPath(
            expected_home_path)

        try:
            os_administration.addUser(test_user)
            # Home folder path is not created on successful login.
            token = test_user.token
            self.assertFalse(mk.fs.isFolder(expected_home_segments))

            self.home_folder = system_users.getHomeFolder(
                username=test_user.name, token=token)

            self.assertContains(
                test_user.name.lower(), self.home_folder.lower())
            self.assertIsInstance(text_type, self.home_folder)
            self.assertTrue(mk.fs.isFolder(expected_home_segments))
        finally:
            os_administration.deleteUser(test_user)
            os_administration.deleteHomeFolder(test_user)