summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudarshan Kumar <sudars19@in.ibm.com>2019-04-10 00:17:37 +0530
committerSudarshan Kumar <sudars19@in.ibm.com>2019-04-10 00:18:41 +0530
commita55afc5dedbdd5863b67884c8657a84d0480a660 (patch)
tree9a8baa7305715e38739f7b8c8be0bac146a66507
parentf528849faccc824d5f15ca36e64947a5df05e252 (diff)
Pyunit Coverage for solver-resource
Pyunit Coverage for solver-resource Issue-ID: OPTFRA-302 Change-Id: Ic18a37e59bcef67cca9de733d4a62a3016220a0d Signed-off-by: Sudarshan Kumar <sudars19@in.ibm.com>
-rw-r--r--conductor/conductor/tests/unit/solver/optimizer/test_greedy.py46
-rw-r--r--conductor/conductor/tests/unit/solver/resource/__init__.py0
-rw-r--r--conductor/conductor/tests/unit/solver/resource/test_region.py64
-rw-r--r--conductor/conductor/tests/unit/solver/resource/test_service.py49
4 files changed, 159 insertions, 0 deletions
diff --git a/conductor/conductor/tests/unit/solver/optimizer/test_greedy.py b/conductor/conductor/tests/unit/solver/optimizer/test_greedy.py
new file mode 100644
index 0000000..1e087fa
--- /dev/null
+++ b/conductor/conductor/tests/unit/solver/optimizer/test_greedy.py
@@ -0,0 +1,46 @@
+#
+# -------------------------------------------------------------------------
+# Copyright (C) 2019 IBM.
+#
+# 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.
+#
+# -------------------------------------------------------------------------
+#
+
+"""Test class for optimizer greedy.py"""
+
+import unittest
+from conductor.common.music import api
+from conductor.solver.optimizer.greedy import Greedy
+from oslo_config import cfg
+from mock import patch
+
+
+class TestGreedy(unittest.TestCase):
+
+ @patch('conductor.solver.optimizer')
+ @patch('conductor.common.music.model.base.Base.table_create')
+ @patch('conductor.common.music.model.base.Base.insert')
+ def setUp(self, conf, _requests=None, _begin_time=None):
+ self.music = api.API()
+ self.conf = cfg.CONF
+ self.greedy = Greedy(self.conf)
+ self._objective = None
+
+ def test_search(self):
+ _demand_list = list()
+ self.assertEqual(None, self.greedy.search(_demand_list, self._objective).current_demand)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/conductor/conductor/tests/unit/solver/resource/__init__.py b/conductor/conductor/tests/unit/solver/resource/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/conductor/conductor/tests/unit/solver/resource/__init__.py
diff --git a/conductor/conductor/tests/unit/solver/resource/test_region.py b/conductor/conductor/tests/unit/solver/resource/test_region.py
new file mode 100644
index 0000000..f5b5370
--- /dev/null
+++ b/conductor/conductor/tests/unit/solver/resource/test_region.py
@@ -0,0 +1,64 @@
+#
+# -------------------------------------------------------------------------
+# Copyright (C) 2019 IBM.
+#
+# 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.
+#
+# -------------------------------------------------------------------------
+#
+
+"""Test class for resources region.py"""
+
+import unittest
+from conductor.solver.resource.region import Region
+from conductor.solver.resource.region import Zone
+from conductor.solver.resource.region import Link
+
+class TestResourceRegion(unittest.TestCase):
+
+ def setUp(self):
+ self._rid = None
+ self.address = {}
+ self.zones = {}
+ self.capacity = {}
+ self.allocated_demand_list = []
+ self.properties = {}
+ self.neighbor_list = []
+ self._zid = None
+ self._region_name = ''
+
+ self.resource_region = Region(self._rid)
+ self._zone = Zone(self._zid)
+ self._link = Link(self._region_name)
+
+ def test_resource_region(self):
+
+ self.assertEqual('active', self.resource_region.status)
+ self.assertEqual(None, self.resource_region.region_type)
+ self.assertEqual(None, self.resource_region.location)
+ self.assertEqual(self.address, self.resource_region.address)
+ self.assertEqual(self.zones, self.resource_region.zones)
+ self.assertEqual(0.0, self.resource_region.cost)
+ self.assertEqual(None, self.resource_region.update_capacity())
+ self.assertEqual(self.allocated_demand_list, self.resource_region.allocated_demand_list)
+ self.assertEqual(self.properties, self.resource_region.properties)
+ self.assertEqual(self.neighbor_list, self.resource_region.neighbor_list)
+ self.assertEqual(0, self.resource_region.last_update)
+ self.assertEqual(None, self.resource_region.update_capacity())
+ self.assertEqual(None, self.resource_region.get_json_summary())
+ self.assertEqual(None, self._zone.get_json_summary())
+ self.assertEqual(None, self._link.get_json_summary())
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/conductor/conductor/tests/unit/solver/resource/test_service.py b/conductor/conductor/tests/unit/solver/resource/test_service.py
new file mode 100644
index 0000000..b8cb65e
--- /dev/null
+++ b/conductor/conductor/tests/unit/solver/resource/test_service.py
@@ -0,0 +1,49 @@
+#
+# -------------------------------------------------------------------------
+# Copyright (C) 2019 IBM.
+#
+# 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.
+#
+# -------------------------------------------------------------------------
+#
+
+"""Test class for resources service.py"""
+
+import unittest
+from conductor.solver.resource.service import Service
+
+
+class TestService(unittest.TestCase):
+
+ def setUp(self):
+ self._sid = None
+ self.capacity = {}
+ self.allocated_demand_list = []
+ self.properties = {}
+ self.resource_service = Service(self._sid)
+
+ def test_resource_service(self):
+ self.assertEqual(None, self.resource_service.name)
+ self.assertEqual(None, self.resource_service.region)
+ self.assertEqual('active', self.resource_service.status)
+ self.assertEqual(0.0, self.resource_service.cost)
+ self.assertEqual(self.capacity, self.resource_service.capacity)
+ self.assertEqual(self.allocated_demand_list, self.resource_service.allocated_demand_list)
+ self.assertEqual(self.properties, self.resource_service.properties)
+ self.assertEqual(0, self.resource_service.last_update)
+ self.assertEqual(None, self.resource_service.update_capacity())
+ self.assertEqual(None, self.resource_service.get_json_summary())
+
+
+if __name__ == '__main__':
+ unittest.main()