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)
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)
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)
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)
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)
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)
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)
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, )
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)
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)
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)
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)
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)
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)
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)
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)