diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/placement-tests/conductor_response.json | 64 | ||||
-rw-r--r-- | test/test_so_response_gen.py | 39 |
2 files changed, 103 insertions, 0 deletions
diff --git a/test/placement-tests/conductor_response.json b/test/placement-tests/conductor_response.json new file mode 100644 index 0000000..e7037c2 --- /dev/null +++ b/test/placement-tests/conductor_response.json @@ -0,0 +1,64 @@ +{ + "plans": [ + { + "status": "done", + "id": "plan_id", + "name": "Plan Name 1", + "links": [ + [ + { + "href": "http://conductor:8091/v1/plans/plan_id", + "rel": "self" + } + ] + ], + "recommendations": [ + { + "vG": { + "inventory_provider": "aai", + "candidate": { + "candidate_id": "DLLSTX1A", + "cloud_owner": "CloudOwner1", + "inventory_type": "cloud", + "location_id": "DLLSTX1A", + "location_type": "openstack-cloud" + }, + "attributes": { + "flavors": { + "flavor_label_1": "vim_flavor_X", + "flavor_label_2": "vim_flavor_Y" + }, + "cloud_owner": "CloudOwner1", + "physical-location-id": "DLLSTX1A", + "cloud_version": "3.0", + "vim-id": "CloudOwner1_DLLSTX1A" + } + } + }, + { + "vGMuxInfra": { + "attributes": { + "host_id": "vgmux_host_name", + "cloud_owner": "CloudOwner1", + "physical-location-id": "DLLSTX1A", + "service_instance_id": "21d5f3e8-e714-4383-8f99-cc480144505a", + "cloud_version": "3.0", + "vim-id": "CloudOwner1_DLLSTX1A" + }, + "inventory_provider": "aai", + "service_resource_id": "12345", + "candidate": { + "is_rehome": "false", + "location_id": "DLLSTX1A", + "inventory_type": "service", + "candidate_id": "21d5f3e8-e714-4383-8f99-cc480144505a", + "host_id": "vgmux_host_name", + "cloud_owner": "CloudOwner1", + "location_type": "openstack-cloud" + } + } + } + ] + } + ] +}
\ No newline at end of file diff --git a/test/test_so_response_gen.py b/test/test_so_response_gen.py new file mode 100644 index 0000000..ab73ef6 --- /dev/null +++ b/test/test_so_response_gen.py @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------- +# Copyright (c) 2017-2018 AT&T Intellectual Property +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ------------------------------------------------------------------------- +# +import unittest +import json +import yaml +from osdf.utils.interfaces import json_from_file +from osdf.optimizers.placementopt.conductor.conductor import conductor_response_processor +from osdf.utils.interfaces import RestClient + + +class TestSoResponseGen(unittest.TestCase): + def setUp(self): + main_dir = "" + conductor_response_file = main_dir + "test/placement-tests/conductor_response.json" + self.conductor_res = json_from_file(conductor_response_file) + self.rc = RestClient() + + def test_so_response_gen(self): + res = conductor_response_processor(self.conductor_res, self.rc, "test") + self.assertEqual(len(res['solutions']['placementSolutions'][0]), 2) + + +if __name__ == "__main__": + unittest.main()
\ No newline at end of file |