Integration tests for hosts client
1.Added a mock library called httpretty. 2.Added tests to list and get hosts. Change-Id: Id8936daa15cd646c800a530e2773914a42eeb6ca
This commit is contained in:
parent
0d241c4282
commit
4f3e418785
|
@ -0,0 +1,15 @@
|
||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
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.
|
||||||
|
"""
|
|
@ -0,0 +1,43 @@
|
||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
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.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class HostsClientMockResponse(object):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def list_hosts(cls):
|
||||||
|
return '{"hosts":[{' \
|
||||||
|
'"host_name": "787f4f6dda1b409bb8b2f9082349690e",' \
|
||||||
|
'"service": "compute",' \
|
||||||
|
'"zone": "nova"},' \
|
||||||
|
'"{host_name": "a98b433151084aee8b1a986e28823b36",' \
|
||||||
|
'"service": "cert",' \
|
||||||
|
'"zone": "internal"}]}'
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_host(cls):
|
||||||
|
return '{"host":' \
|
||||||
|
' [{"resource":' \
|
||||||
|
' {"cpu": 1,' \
|
||||||
|
'"disk_gb": 1028,' \
|
||||||
|
'"host": "787f4f6dda1b409bb8b2f9082349690e",' \
|
||||||
|
'"memory_mb": 8192,"project": "(total)"}},' \
|
||||||
|
'{"resource":' \
|
||||||
|
' {"cpu": 0,' \
|
||||||
|
'"disk_gb": 0,' \
|
||||||
|
'"host": "787f4f6dda1b409bb8b2f9082349690e",' \
|
||||||
|
'"memory_mb": 512,' \
|
||||||
|
'"project": "(used_now)"}}]}'
|
|
@ -0,0 +1,61 @@
|
||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
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 unittest2 as unittest
|
||||||
|
import httpretty
|
||||||
|
|
||||||
|
from cloudcafe.compute.hosts_api.client import HostsClient
|
||||||
|
from cloudcafe.compute.tests.integration.hosts.responses\
|
||||||
|
import HostsClientMockResponse
|
||||||
|
|
||||||
|
AUTH_TOKEN = "dda0e9d0a1084f67bb9ea4e91abcd4ec"
|
||||||
|
HOSTS_API_ENDPOINT = "http://localhost:5000/v1"
|
||||||
|
HOST_NAME = "787f4f6dda1b409bb8b2f9082349690e"
|
||||||
|
|
||||||
|
|
||||||
|
class HostsClientTest(unittest.TestCase):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUp(cls):
|
||||||
|
cls.hosts_client = HostsClient(
|
||||||
|
url=HOSTS_API_ENDPOINT,
|
||||||
|
auth_token=AUTH_TOKEN,
|
||||||
|
serialize_format="json",
|
||||||
|
deserialize_format="json"
|
||||||
|
)
|
||||||
|
cls.hosts_uri = "{0}/os-hosts".format(HOSTS_API_ENDPOINT)
|
||||||
|
cls.host_uri = "{0}/{1}".format(cls.hosts_uri, HOST_NAME)
|
||||||
|
|
||||||
|
@httpretty.activate
|
||||||
|
def test_list_hosts(self):
|
||||||
|
httpretty.register_uri(httpretty.GET, self.hosts_uri,
|
||||||
|
body=HostsClientMockResponse.list_hosts())
|
||||||
|
response = self.hosts_client.list_hosts()
|
||||||
|
self.assertEqual(200, response.status_code)
|
||||||
|
self.assertEqual(HostsClientMockResponse.list_hosts(),
|
||||||
|
response.content)
|
||||||
|
|
||||||
|
@httpretty.activate
|
||||||
|
def test_get_host(self):
|
||||||
|
httpretty.register_uri(httpretty.GET, self.host_uri,
|
||||||
|
body=HostsClientMockResponse.get_host())
|
||||||
|
response = self.hosts_client.get_host(HOST_NAME)
|
||||||
|
self.assertEqual(200, response.status_code)
|
||||||
|
self.assertEqual(HostsClientMockResponse.get_host(), response.content)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
|
@ -0,0 +1,15 @@
|
||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
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.
|
||||||
|
"""
|
|
@ -0,0 +1,15 @@
|
||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
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.
|
||||||
|
"""
|
|
@ -1,3 +1,19 @@
|
||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
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 unittest2 as unittest
|
import unittest2 as unittest
|
||||||
|
|
||||||
from cloudcafe.compute.hosts_api.models.hosts import Host
|
from cloudcafe.compute.hosts_api.models.hosts import Host
|
|
@ -0,0 +1 @@
|
||||||
|
httpretty
|
Loading…
Reference in New Issue