From 629bfd53dab67afbe6d70b010b7df0d0c57d39fe Mon Sep 17 00:00:00 2001 From: Zhiteng Huang Date: Mon, 10 Dec 2012 15:33:30 +0800 Subject: Add common base weigher/weigher handler for filter scheduler Filter scheduler is being used for more than one core projects (Nova and Cinder as of writing), the implementation shared a lot of common code. This patch is to move base weigher (weighing function), weigher handler for filter scheduler into oslo to reduce possible porting. implement bp: common-weights Change-Id: I2d1b37438663b53e035cc262875a283e5e2ee970 --- tests/unit/fakes.py | 35 +++++++++++++++++++++++++++++++++++ tests/unit/scheduler/test_weights.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 tests/unit/fakes.py create mode 100644 tests/unit/scheduler/test_weights.py (limited to 'tests') diff --git a/tests/unit/fakes.py b/tests/unit/fakes.py new file mode 100644 index 0000000..81fc503 --- /dev/null +++ b/tests/unit/fakes.py @@ -0,0 +1,35 @@ +# Copyright 2012 Intel Inc, OpenStack LLC. +# All Rights Reserved. +# +# 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. +""" +Fakes For filter and weight tests. +""" + + +from openstack.common.scheduler import weights + + +class FakeWeigher1(weights.BaseHostWeigher): + def __init__(self): + pass + + +class FakeWeigher2(weights.BaseHostWeigher): + def __init__(self): + pass + + +class FakeClass(object): + def __init__(self): + pass diff --git a/tests/unit/scheduler/test_weights.py b/tests/unit/scheduler/test_weights.py new file mode 100644 index 0000000..478a143 --- /dev/null +++ b/tests/unit/scheduler/test_weights.py @@ -0,0 +1,32 @@ +# Copyright 2011-2012 OpenStack LLC. +# All Rights Reserved. +# +# 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. +""" +Tests For Scheduler weights. +""" + +import unittest + +from openstack.common.scheduler import weight +from tests.unit import fakes + + +class TestWeightHandler(unittest.TestCase): + def test_get_all_classes(self): + namespace = "openstack.common.tests.fakes.weights" + handler = weight.BaseWeightHandler(weight.BaseWeigher, namespace) + classes = handler.get_all_classes() + self.assertTrue(fakes.FakeWeigher1 in classes) + self.assertTrue(fakes.FakeWeigher2 in classes) + self.assertFalse(fakes.FakeClass in classes) -- cgit