42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
| # Copyright 2018 The Chromium OS Authors. All rights reserved.
 | |
| # Use of this source code is governed by a BSD-style license that can be
 | |
| # found in the LICENSE file.
 | |
| from autotest_lib.client.common_lib import error
 | |
| from autotest_lib.client.common_lib.cros import retry
 | |
| 
 | |
| from autotest_lib.client.cros import cryptohome
 | |
| from autotest_lib.client.cros.enterprise import enterprise_policy_base
 | |
| 
 | |
| from py_utils import TimeoutException
 | |
| 
 | |
| class policy_DeviceEphemeralUsersEnabled(
 | |
|         enterprise_policy_base.EnterprisePolicyTest):
 | |
|     """Test for the DeviceEphemeralUsersEnabled policy."""
 | |
|     version = 1
 | |
|     _POLICY = 'DeviceEphemeralUsersEnabled'
 | |
| 
 | |
|     def verify_permanent_vault(self, case):
 | |
|         if case and cryptohome.is_permanent_vault_mounted(
 | |
|             user=enterprise_policy_base.USERNAME):
 | |
|                 raise error.TestFail(
 | |
|                     'User should not be permanently vaulted in '
 | |
|                     'Ephemeral mode.')
 | |
| 
 | |
|         if not case:
 | |
|             cryptohome.is_permanent_vault_mounted(
 | |
|                 user=enterprise_policy_base.USERNAME, allow_fail=True)
 | |
| 
 | |
|     # Prevents client tests that are kicked off via server tests from flaking.
 | |
|     @retry.retry(TimeoutException, timeout_min=5, delay_sec=10)
 | |
|     def _run_setup_case(self, case):
 | |
|         self.setup_case(device_policies={self._POLICY: case}, enroll=True)
 | |
| 
 | |
|     def run_once(self, case):
 | |
|         """
 | |
|         Entry point of this test.
 | |
| 
 | |
|         @param case: True, False, or None for the value of the policy.
 | |
| 
 | |
|         """
 | |
|         self._run_setup_case(case)
 | |
|         self.verify_permanent_vault(case) |