blob: 84854d4548b96bf034c21cd9d5b9428def2f9a45 [file] [log] [blame]
# Copyright 2019 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.
import copy
import unittest
from autotest_lib.client.common_lib import error
from autotest_lib.client.cros.enterprise import policy
"""
This is the unittest file for policy.py.
If you modify that file, you should be at minimum re-running this file.
Add and correct tests as changes are made to the utils file.
To run the tests, use the following command from your DEV box (outside_chroot):
src/third_party/autotest/files/utils$ python unittest_suite.py \
autotest_lib.client.cros.enterprise.test_policy --debug
"""
class test_policyManager(unittest.TestCase):
dict_value = {'scope': 'testScope', 'source': 'testSource',
'level': 'testLevel', 'value': 'test_value'}
dict_value2 = {'scope': 'testScope', 'source': 'testSource',
'level': 'testLevel', 'value': 'test_value2'}
def test_setting_params(self):
test_policy = policy.Policy()
test_policy.name = 'Test'
test_policy.level = 1
test_policy.value = 'TheValue'
test_policy.scope = 'test_value'
test_policy.source = 'Cloud'
self.assertEqual(test_policy.name, 'Test')
self.assertEqual(test_policy.level, 1)
self.assertEqual(test_policy.scope, 'test_value')
self.assertEqual(test_policy.source, 'Cloud')
self.assertEqual(test_policy.value, 'TheValue')
def test_setting_group_user(self):
test_policy = policy.Policy()
test_policy.name = 'Test'
test_policy.group = 'user'
self.assertEqual(test_policy.name, 'Test')
self.assertEqual(test_policy.source, 'cloud')
self.assertEqual(test_policy.level, 'mandatory')
self.assertEqual(test_policy.scope, 'user')
def test_setting_group_device(self):
test_policy = policy.Policy()
test_policy.name = 'Test'
test_policy.group = 'device'
self.assertEqual(test_policy.name, 'Test')
self.assertEqual(test_policy.source, 'cloud')
self.assertEqual(test_policy.level, 'mandatory')
self.assertEqual(test_policy.scope, 'machine')
def test_setting_group_suggested_user(self):
test_policy = policy.Policy()
test_policy.name = 'Test'
test_policy.group = 'suggested_user'
self.assertEqual(test_policy.name, 'Test')
self.assertEqual(test_policy.source, 'cloud')
self.assertEqual(test_policy.level, 'recommended')
self.assertEqual(test_policy.scope, 'user')
def test_setting_value(self):
test_policy = policy.Policy()
test_policy.name = 'Test'
test_policydict = copy.deepcopy(self.dict_value)
test_policydict['error'] = 'An error'
test_policy.set_policy_from_dict(test_policydict)
self.assertEqual(test_policy.name, 'Test')
self.assertEqual(test_policy.level, 'testLevel')
self.assertEqual(test_policy.scope, 'testScope')
self.assertEqual(test_policy.source, 'testSource')
self.assertEqual(test_policy.value, 'test_value')
def test_get_policy_as_dict(self):
test_policy = policy.Policy()
test_policy.name = 'Test'
test_policy.level = 1
test_policy.value = 'TheValue'
test_policy.scope = 'test_value'
test_policy.source = 'Cloud'
expected_dict = {
'Test': {
'scope': 'test_value',
'level': 1,
'value': 'TheValue',
'source': 'Cloud'}}
self.assertEqual(expected_dict, test_policy.get_policy_as_dict())
def test_policy_eq_ne(self):
test_policy = policy.Policy()
test_policy.name = 'Test'
test_policy.set_policy_from_dict(self.dict_value)
test_policy2 = policy.Policy()
test_policy2.name = 'Test2'
test_policy2.set_policy_from_dict(self.dict_value)
self.assertTrue(test_policy == test_policy2)
self.assertFalse(test_policy != test_policy2)
test_policy3 = policy.Policy()
test_policy3.name = 'Test3'
test_policy3.set_policy_from_dict(self.dict_value2)
self.assertFalse(test_policy == test_policy3)
def test_policy_eq_obfuscated(self):
test_policy = policy.Policy()
test_policy.name = 'Test'
test_value = {
'scope': 'testScope', 'source': 'testSource',
'level': 'testLevel',
'value': {'NetworkConfigurations': [
{'WiFi': {'Passphrase': 'Secret'}}]}}
test_policy.set_policy_from_dict(test_value)
test_policy2 = policy.Policy()
test_policy2.name = 'TestOpenNetworkConfiguration'
obfuscated_value = {
'scope': 'testScope', 'source': 'testSource',
'level': 'testLevel',
'value': {'NetworkConfigurations': [
{'WiFi': {'Passphrase': '********'}}]}}
test_policy2.set_policy_from_dict(obfuscated_value)
self.assertTrue(test_policy == test_policy2)
self.assertFalse(test_policy != test_policy2)
def test_is_network_policy(self):
self.assertTrue(
policy.is_network_policy('TestOpenNetworkConfiguration'))
self.assertFalse(policy.is_network_policy('Test'))
def test_check_obfuscation(self):
test_value = {
'NetworkConfigurations': [
{'WiFi': {'Passphrase': '********'}}]}
self.assertTrue(policy.check_obfuscation(test_value))
test_value2 = {
'NetworkConfigurations': [
{'WiFi': {'Passphrase': 'Bad'}}]}
self.assertFalse(policy.check_obfuscation(test_value2))
test_value3 = {
'NetworkConfigurations': [
{'WiFi': {'EAP': {'Password': '********'}}}]}
self.assertTrue(policy.check_obfuscation(test_value3))
test_value4 = {
'NetworkConfigurations': [
{'WiFi': {'EAP': {'Password': 'Bad'}}}]}
self.assertFalse(policy.check_obfuscation(test_value4))
test_value5 = {
'Certificates': [
{'PKCS12': '********'}]}
self.assertTrue(policy.check_obfuscation(test_value5))
test_value6 = {
'Certificates': [
{'PKCS12': 'BAD'}]}
self.assertFalse(policy.check_obfuscation(test_value6))
def test_invalid_policy_dict(self):
with self.assertRaises(error.TestError) as context:
test_policy = policy.Policy()
test_policy.name = 'Bad Policy'
test_policy.set_policy_from_dict({'Invalid Keys': 'Invalid Value'})
self.assertIn('Incorrect input data provided', str(context.exception))
if __name__ == '__main__':
unittest.main()