summaryrefslogtreecommitdiffstats
path: root/tests/unit/rpc/test_matchmaker.py
diff options
context:
space:
mode:
authorRussell Bryant <rbryant@redhat.com>2012-06-04 14:43:43 -0400
committerRussell Bryant <rbryant@redhat.com>2012-06-06 10:30:40 -0400
commitcf19def1b13ef0b4abeacad32abc1b46b6e7a47e (patch)
tree22fdb1afcd903a42fa1db4792e751e2db52b2209 /tests/unit/rpc/test_matchmaker.py
parentbdc4fb3183d455f00870981f5b9a200cc1b8b3f1 (diff)
downloadoslo-cf19def1b13ef0b4abeacad32abc1b46b6e7a47e.tar.gz
oslo-cf19def1b13ef0b4abeacad32abc1b46b6e7a47e.tar.xz
oslo-cf19def1b13ef0b4abeacad32abc1b46b6e7a47e.zip
Add rpc to openstack-common.
Implements blueprint common-rpc. This patch imports nova.rpc to openstack-common. All of the necessary changes to the core code to make it compatible with openstack-common have been done in nova, so the only changes made here are to imports. There are more changes made to the tests, but nothing that changes the core functionality of the tests. Change-Id: I17330aa4adfd0f22c449a2376833c7fe9dfd0cf1
Diffstat (limited to 'tests/unit/rpc/test_matchmaker.py')
-rw-r--r--tests/unit/rpc/test_matchmaker.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/unit/rpc/test_matchmaker.py b/tests/unit/rpc/test_matchmaker.py
new file mode 100644
index 0000000..a38b59c
--- /dev/null
+++ b/tests/unit/rpc/test_matchmaker.py
@@ -0,0 +1,60 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2012 Cloudscaling Group, Inc
+#
+# 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 logging
+import unittest
+
+from openstack.common.rpc import matchmaker
+
+
+LOG = logging.getLogger(__name__)
+
+
+class _MatchMakerTestCase(unittest.TestCase):
+ def test_valid_host_matches(self):
+ queues = self.driver.queues(self.topic)
+ matched_hosts = map(lambda x: x[1], queues)
+
+ for host in matched_hosts:
+ self.assertIn(host, self.hosts)
+
+ def test_fanout_host_matches(self):
+ """For known hosts, see if they're in fanout."""
+ queues = self.driver.queues("fanout~" + self.topic)
+ matched_hosts = map(lambda x: x[1], queues)
+
+ LOG.info("Received result from matchmaker: %s", queues)
+ for host in self.hosts:
+ self.assertIn(host, matched_hosts)
+
+
+class MatchMakerFileTestCase(_MatchMakerTestCase):
+ def setUp(self):
+ self.topic = "test"
+ self.hosts = ['hello', 'world', 'foo', 'bar', 'baz']
+ ring = {
+ self.topic: self.hosts
+ }
+ self.driver = matchmaker.MatchMakerRing(ring)
+ super(MatchMakerFileTestCase, self).setUp()
+
+
+class MatchMakerLocalhostTestCase(_MatchMakerTestCase):
+ def setUp(self):
+ self.driver = matchmaker.MatchMakerLocalhost()
+ self.topic = "test"
+ self.hosts = ['localhost']
+ super(MatchMakerLocalhostTestCase, self).setUp()