First pass at adding compute unit tests.
Change-Id: Icf3340d457f75eec89bb0e5c9b4b953c3b81020f
This commit is contained in:
parent
1bb59c53ee
commit
4297e5781b
14
tests/compute/__init__.py
Normal file
14
tests/compute/__init__.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Copyright 2013 OpenStack, LLC.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
59
tests/compute/test_compute.py
Normal file
59
tests/compute/test_compute.py
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# Copyright 2013 OpenStack, LLC.
|
||||||
|
#
|
||||||
|
# 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 mock
|
||||||
|
|
||||||
|
from openstackclient.common import clientmanager
|
||||||
|
from openstackclient.compute import client as compute_client
|
||||||
|
from tests import utils
|
||||||
|
|
||||||
|
|
||||||
|
class FakeClient(object):
|
||||||
|
def __init__(self, endpoint=None, **kwargs):
|
||||||
|
self.client = mock.MagicMock()
|
||||||
|
self.servers = mock.MagicMock()
|
||||||
|
|
||||||
|
self.client.auth_url = kwargs['auth_url']
|
||||||
|
|
||||||
|
|
||||||
|
class TestCompute(utils.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
super(TestCompute, self).setUp()
|
||||||
|
|
||||||
|
self.auth_token = "foobar"
|
||||||
|
self.auth_url = "http://0.0.0.0"
|
||||||
|
|
||||||
|
api_version = {"compute": "2"}
|
||||||
|
|
||||||
|
compute_client.API_VERSIONS = {
|
||||||
|
"2": "tests.compute.test_compute.FakeClient"
|
||||||
|
}
|
||||||
|
|
||||||
|
self.cm = clientmanager.ClientManager(token=self.auth_token,
|
||||||
|
url=self.auth_url,
|
||||||
|
auth_url=self.auth_url,
|
||||||
|
api_version=api_version)
|
||||||
|
|
||||||
|
def test_make_client(self):
|
||||||
|
test_servers = [
|
||||||
|
["id 1", "name 1", "status 1", "networks 1"],
|
||||||
|
["id 2", "name 2", "status 2", "networks 2"]
|
||||||
|
]
|
||||||
|
|
||||||
|
self.cm.compute.servers.list.return_value = test_servers
|
||||||
|
|
||||||
|
self.assertEqual(self.cm.compute.servers.list(), test_servers)
|
||||||
|
self.assertEqual(self.cm.compute.client.auth_token, self.auth_token)
|
||||||
|
self.assertEqual(self.cm.compute.client.auth_url, self.auth_url)
|
@ -14,23 +14,22 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
from openstackclient.common import clientmanager
|
from openstackclient.common import clientmanager
|
||||||
|
from tests import utils
|
||||||
|
|
||||||
def factory(inst):
|
|
||||||
return object()
|
|
||||||
|
|
||||||
|
|
||||||
class Container(object):
|
class Container(object):
|
||||||
|
attr = clientmanager.ClientCache(lambda x: object())
|
||||||
|
|
||||||
attr = clientmanager.ClientCache(factory)
|
def __init__(self):
|
||||||
|
pass
|
||||||
def init_token(self):
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
def test_singleton():
|
class TestClientManager(utils.TestCase):
|
||||||
# Verify that the ClientCache descriptor only
|
def setUp(self):
|
||||||
# invokes the factory one time and always
|
super(TestClientManager, self).setUp()
|
||||||
# returns the same value after that.
|
|
||||||
|
def test_singleton(self):
|
||||||
|
# NOTE(dtroyer): Verify that the ClientCache descriptor only invokes
|
||||||
|
# the factory one time and always returns the same value after that.
|
||||||
c = Container()
|
c = Container()
|
||||||
assert c.attr is c.attr
|
self.assertEqual(c.attr, c.attr)
|
@ -13,10 +13,10 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
import fixtures
|
||||||
import os
|
import os
|
||||||
import mock
|
import mock
|
||||||
|
|
||||||
import fixtures
|
|
||||||
from openstackclient import shell as os_shell
|
from openstackclient import shell as os_shell
|
||||||
from tests import utils
|
from tests import utils
|
||||||
|
|
||||||
@ -47,8 +47,7 @@ def make_shell():
|
|||||||
return _shell
|
return _shell
|
||||||
|
|
||||||
|
|
||||||
class ShellTest(utils.TestCase):
|
class TestShell(utils.TestCase):
|
||||||
|
|
||||||
FAKE_ENV = {
|
FAKE_ENV = {
|
||||||
'OS_AUTH_URL': DEFAULT_AUTH_URL,
|
'OS_AUTH_URL': DEFAULT_AUTH_URL,
|
||||||
'OS_TENANT_ID': DEFAULT_TENANT_ID,
|
'OS_TENANT_ID': DEFAULT_TENANT_ID,
|
||||||
@ -60,7 +59,7 @@ class ShellTest(utils.TestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
""" Patch os.environ to avoid required auth info"""
|
""" Patch os.environ to avoid required auth info"""
|
||||||
super(ShellTest, self).setUp()
|
super(TestShell, self).setUp()
|
||||||
for var in self.FAKE_ENV:
|
for var in self.FAKE_ENV:
|
||||||
self.useFixture(
|
self.useFixture(
|
||||||
fixtures.EnvironmentVariable(
|
fixtures.EnvironmentVariable(
|
||||||
@ -85,7 +84,7 @@ class ShellTest(utils.TestCase):
|
|||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
#self.auth_patch.stop()
|
#self.auth_patch.stop()
|
||||||
self.cmd_patch.stop()
|
self.cmd_patch.stop()
|
||||||
super(ShellTest, self).tearDown()
|
super(TestShell, self).tearDown()
|
||||||
|
|
||||||
def test_shell_args(self):
|
def test_shell_args(self):
|
||||||
sh = make_shell()
|
sh = make_shell()
|
||||||
|
@ -22,14 +22,13 @@ import testtools
|
|||||||
class TestCase(testtools.TestCase):
|
class TestCase(testtools.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TestCase, self).setUp()
|
super(TestCase, self).setUp()
|
||||||
|
|
||||||
if (os.environ.get("OS_STDOUT_NOCAPTURE") == "True" and
|
if (os.environ.get("OS_STDOUT_NOCAPTURE") == "True" and
|
||||||
os.environ.get("OS_STDOUT_NOCAPTURE") == "1"):
|
os.environ.get("OS_STDOUT_NOCAPTURE") == "1"):
|
||||||
stdout = self.useFixture(fixtures.StringStream("stdout")).stream
|
stdout = self.useFixture(fixtures.StringStream("stdout")).stream
|
||||||
self.useFixture(fixtures.MonkeyPatch("sys.stdout", stdout))
|
self.useFixture(fixtures.MonkeyPatch("sys.stdout", stdout))
|
||||||
|
|
||||||
if (os.environ.get("OS_STDERR_NOCAPTURE") == "True" and
|
if (os.environ.get("OS_STDERR_NOCAPTURE") == "True" and
|
||||||
os.environ.get("OS_STDERR_NOCAPTURE") == "1"):
|
os.environ.get("OS_STDERR_NOCAPTURE") == "1"):
|
||||||
stderr = self.useFixture(fixtures.StringStream("stderr")).stream
|
stderr = self.useFixture(fixtures.StringStream("stderr")).stream
|
||||||
self.useFixture(fixtures.MonkeyPatch("sys.stderr", stderr))
|
self.useFixture(fixtures.MonkeyPatch("sys.stderr", stderr))
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
super(TestCase, self).tearDown()
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user