185 lines
6.7 KiB
Python
185 lines
6.7 KiB
Python
# 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()
|