5dc75c34032d4521ceb3cfe3f14b5ada2775c706
[optf/osdf.git] / test / policy / test_policy_interface.py
1 # -------------------------------------------------------------------------
2 #   Copyright (c) 2017-2018 AT&T Intellectual Property
3 #
4 #   Licensed under the Apache License, Version 2.0 (the "License");
5 #   you may not use this file except in compliance with the License.
6 #   You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #   Unless required by applicable law or agreed to in writing, software
11 #   distributed under the License is distributed on an "AS IS" BASIS,
12 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #   See the License for the specific language governing permissions and
14 #   limitations under the License.
15 #
16 # -------------------------------------------------------------------------
17 #
18 import mock
19 import os
20 import unittest
21
22 from osdf.adapters.local_data import local_policies
23 import osdf.config.loader as config_loader
24 from osdf.utils.interfaces import json_from_file
25 from osdf.utils.programming_utils import DotDict
26 from osdf.optimizers.placementopt.conductor import translation as tr
27 from osdf.adapters.policy import interface as pol
28
29
30 class TestPolicyInterface(unittest.TestCase):
31
32     def setUp(self):
33         self.config_spec = {
34             "deployment": os.environ.get("OSDF_MANAGER_CONFIG_FILE", "config/osdf_config.yaml"),
35             "core": "config/common_config.yaml"
36         }
37         self.osdf_config = DotDict(config_loader.all_configs(**self.config_spec))
38
39         main_dir = ""
40         conductor_api_template = main_dir + "osdf/templates/conductor_interface.json"
41         parameter_data_file = main_dir + "test/placement-tests/request.json"
42         policy_data_path = main_dir + "test/policy-local-files/"
43         local_config_file = main_dir + "config/common_config.yaml"
44
45         valid_policies_list_file = policy_data_path + '/' + 'meta-valid-policies.txt'
46         self.valid_policies_files = local_policies.get_policy_names_from_file(valid_policies_list_file)
47
48         self.request_json = json_from_file(parameter_data_file)
49         self.policies = [json_from_file(policy_data_path + '/' + name) for name in self.valid_policies_files]
50
51     def tearDown(self):
52         pass
53
54     def test_gen_demands(self):
55         res = tr.gen_demands(self.request_json, self.policies)
56         assert res is not None
57
58     def test_get_by_name(self):
59         pol.get_by_name(mock.MagicMock(), self.valid_policies_files[0])
60
61
62 if __name__ == "__main__":
63     unittest.main()
64