update link to upper-constraints.txt
[optf/osdf.git] / test / test_simple_route_opt.py
1 from apps.route.optimizers.simple_route_opt import RouteOpt
2 from osdf.utils.interfaces import json_from_file
3 from unittest.mock import patch
4 import osdf.config.loader as config_loader
5 from osdf.utils.programming_utils import DotDict
6 import unittest
7
8
9 class TestSimpleRouteOptimization(unittest.TestCase):
10     @patch('apps.route.optimizers.simple_route_opt.requests.get')
11     @patch('apps.route.optimizers.simple_route_opt.pymzn.minizinc')
12     def test_process_nst_selection_solutions( self, mock_solve, mock_get):
13
14         main_dir = ""
15         response_data_file = main_dir + "test/simple_route_opt/AAI.json"
16         mock_get.return_value.json.return_value = json_from_file(response_data_file)
17         mock_get.return_value.status_code = 200
18         mock_solve.return_value = [{'x': [1, 1, 1]}]
19         self.config_spec = {
20             "deployment": "test/functest/simulators/simulated-config/osdf_config.yaml",
21             "core": "test/functest/simulators/simulated-config/common_config.yaml"
22         }
23         self.osdf_config = DotDict(config_loader.all_configs(**self.config_spec))
24         parameter_data_file = main_dir + "test/simple_route_opt/routeOpt.json"
25         request_json = json_from_file(parameter_data_file)
26         mock_response = {
27             "requestId": "yyy-yyy-yyyy",
28             "requestStatus": "accepted",
29             "solutions": [
30                 {
31                     "end_node": "10.10.10.10",
32                     "link": "link-id-1",
33                     "start_node": "20.20.20.20"
34                 },
35                 {
36                     "end_node": "11.11.11.11",
37                     "link": "link-id-2",
38                     "start_node": "22.22.22.22"
39                 },
40                 {
41                     "end_node": "20.20.20.20",
42                     "link": "link-id-3",
43                     "start_node": "11.11.11.11"
44                 }
45             ],
46             "statusMessage": " ",
47             "transactionId": "xxx-xxx-xxxx"
48         }
49         routopt = RouteOpt()
50         actual_response = routopt.get_route(request_json,self.osdf_config)
51         self.assertEqual(mock_response, actual_response)
52
53
54
55 if __name__ == '__main__':
56     unittest.main()
57