Added unit tests for client. Coverage 66%.

This commit is contained in:
Timur Nurlygayanov 2013-03-31 01:47:00 +07:00
parent a6a485b635
commit 44c45c3500
6 changed files with 686 additions and 155 deletions

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>portasclient</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.python.pydev.PyDevBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.python.pydev.pythonNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?eclipse-pydev version="1.0"?><pydev_project>
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
<path>/portasclient</path>
</pydev_pathproperty>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
</pydev_project>

View File

@ -0,0 +1,194 @@
import unittest
import logging
from httpretty import HTTPretty, httprettified
from portasclient.client import Client
LOG = logging.getLogger('Unit tests')
class UnitTestsForClassesAndFunctions(unittest.TestCase):
@httprettified
def test_client_env_list_with_empty_list(self):
HTTPretty.register_uri(HTTPretty.GET,
"http://no-resolved-host:8001/environments",
body='{"environments": []}',
adding_headers={
'Content-Type': 'application/json',})
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
result = test_client.environments.list()
assert result == []
@httprettified
def test_client_env_list_with_elements(self):
body = ('{"environments":['
'{"id": "0ce373a477f211e187a55404a662f968",'
'"name": "dc1",'
'"created": "2010-11-30T03:23:42Z",'
'"updated": "2010-11-30T03:23:44Z",'
'"tenant-id": "0849006f7ce94961b3aab4e46d6f229a"},'
'{"id": "0ce373a477f211e187a55404a662f961",'
'"name": "dc2",'
'"created": "2010-11-30T03:23:42Z",'
'"updated": "2010-11-30T03:23:44Z",'
'"tenant-id": "0849006f7ce94961b3aab4e4626f229a"}'
']}')
HTTPretty.register_uri(HTTPretty.GET,
"http://no-resolved-host:8001/environments",
body=body,
adding_headers={
'Content-Type': 'application/json',})
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
result = test_client.environments.list()
assert result[0].name == 'dc1'
assert result[-1].name == 'dc2'
@httprettified
def test_client_env_create(self):
body = ('{"id": "0ce373a477f211e187a55404a662f968",'
'"name": "test",'
'"created": "2010-11-30T03:23:42Z",'
'"updated": "2010-11-30T03:23:44Z",'
'"tenant-id": "0849006f7ce94961b3aab4e46d6f229a"}'
)
HTTPretty.register_uri(HTTPretty.POST,
"http://no-resolved-host:8001/environments",
body=body,
adding_headers={
'Content-Type': 'application/json',})
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
result = test_client.environments.create('test')
assert result.name == 'test'
@httprettified
def test_client_ad_list(self):
body = ('{"activeDirectories": [{'
'"id": "1",'
'"name": "dc1",'
'"created": "2010-11-30T03:23:42Z",'
'"updated": "2010-11-30T03:23:44Z",'
'"configuration": "standalone",'
'"units": [{'
'"id": "0ce373a477f211e187a55404a662f961",'
'"type": "master",'
'"location": "test"}]}]}')
url = ("http://no-resolved-host:8001/environments"
"/1/activeDirectories")
HTTPretty.register_uri(HTTPretty.GET, url,
body=body,
adding_headers={
'Content-Type': 'application/json',})
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
result = test_client.activeDirectories.list('1', 'test')
assert result[0].name == 'dc1'
@httprettified
def test_client_ad_create(self):
body = ('{'
'"id": "1",'
'"name": "ad1",'
'"created": "2010-11-30T03:23:42Z",'
'"updated": "2010-11-30T03:23:44Z",'
'"configuration": "standalone",'
'"units": [{'
'"id": "0ce373a477f211e187a55404a662f961",'
'"type": "master",'
'"location": "test"}]}')
url = ("http://no-resolved-host:8001/environments"
"/1/activeDirectories")
HTTPretty.register_uri(HTTPretty.POST, url,
body=body,
adding_headers={
'Content-Type': 'application/json',})
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
result = test_client.activeDirectories.create('1', 'test', 'ad1')
assert result.name == 'ad1'
@httprettified
def test_client_ad_list_without_elements(self):
body = ('{"activeDirectories": []}')
url = ("http://no-resolved-host:8001/environments"
"/1/activeDirectories")
HTTPretty.register_uri(HTTPretty.GET, url,
body=body,
adding_headers={
'Content-Type': 'application/json',})
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
result = test_client.activeDirectories.list('1', 'test')
assert result == []
@httprettified
def test_client_iis_list(self):
body = ('{"webServers": [{'
'"id": "1",'
'"name": "iis11",'
'"created": "2010-11-30T03:23:42Z",'
'"updated": "2010-11-30T03:23:44Z",'
'"domain": "acme",'
'"units": [{'
'"id": "0ce373a477f211e187a55404a662f961",'
'"endpoint": {"host": "1.1.1.1"},'
'"location": "test"}]}]}')
url = ("http://no-resolved-host:8001/environments"
"/1/webServers")
HTTPretty.register_uri(HTTPretty.GET, url,
body=body,
adding_headers={
'Content-Type': 'application/json',})
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
result = test_client.webServers.list('1', 'test')
assert result[0].name == 'iis11'
@httprettified
def test_client_iis_create(self):
body = ('{'
'"id": "1",'
'"name": "iis12",'
'"created": "2010-11-30T03:23:42Z",'
'"updated": "2010-11-30T03:23:44Z",'
'"domain": "acme",'
'"units": [{'
'"id": "0ce373a477f211e187a55404a662f961",'
'"endpoint": {"host": "1.1.1.1"},'
'"location": "test"}]}')
url = ("http://no-resolved-host:8001/environments"
"/1/webServers")
HTTPretty.register_uri(HTTPretty.POST, url,
body=body,
adding_headers={
'Content-Type': 'application/json',})
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
result = test_client.webServers.create('1', 'test', 'iis12')
assert result.name == 'iis12'
@httprettified
def test_client_iis_list_without_elements(self):
body = ('{"webServers": []}')
url = ("http://no-resolved-host:8001/environments"
"/1/webServers")
HTTPretty.register_uri(HTTPretty.GET, url,
body=body,
adding_headers={
'Content-Type': 'application/json',})
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
result = test_client.webServers.list('1', 'test')
assert result == []

View File

@ -0,0 +1,467 @@
import unittest
import logging
from mock import MagicMock
from portasclient.client import Client
import portasclient.v1.environments as environments
import portasclient.v1.services as services
import portasclient.v1.sessions as sessions
def my_mock(*a, **b):
return [a, b]
LOG = logging.getLogger('Unit tests')
api = MagicMock(json_request=my_mock)
class UnitTestsForClassesAndFunctions(unittest.TestCase):
def test_create_client_instance(self):
endpoint = 'http://no-resolved-host:8001'
test_client = Client('1', endpoint=endpoint, token='1', timeout=10)
assert test_client.environments is not None
assert test_client.sessions is not None
assert test_client.activeDirectories is not None
assert test_client.webServers is not None
def test_env_manager_list(self):
manager = environments.EnvironmentManager(api)
result = manager.list()
assert result == []
def test_env_manager_create(self):
manager = environments.EnvironmentManager(api)
result = manager.create('test')
assert result.body == {'name': 'test'}
def test_env_manager_create_with_named_parameters(self):
manager = environments.EnvironmentManager(api)
result = manager.create(name='test')
assert result.body == {'name': 'test'}
def test_env_manager_create_negative_without_parameters(self):
result = 'Exception'
manager = environments.EnvironmentManager(api)
try:
result = manager.create()
except TypeError:
pass
assert result is 'Exception'
def test_env_manager_delete(self):
manager = environments.EnvironmentManager(api)
result = manager.delete('test')
assert result is None
def test_env_manager_delete_with_named_parameters(self):
manager = environments.EnvironmentManager(api)
result = manager.delete(environment_id='1')
assert result is None
def test_env_manager_delete_negative_without_parameters(self):
result = 'Exception'
manager = environments.EnvironmentManager(api)
try:
result = manager.delete()
except TypeError:
pass
assert result is 'Exception'
def test_env_manager_update(self):
manager = environments.EnvironmentManager(api)
result = manager.update('1', 'test')
assert result.body == {'name': 'test'}
def test_env_manager_update_with_named_parameters(self):
manager = environments.EnvironmentManager(api)
result = manager.update(environment_id='1',
name='test')
assert result.body == {'name': 'test'}
def test_env_manager_update_negative_with_one_parameter(self):
result = 'Exception'
manager = environments.EnvironmentManager(api)
try:
result = manager.update('test')
except TypeError:
pass
assert result is 'Exception'
def test_env_manager_update_negative_without_parameters(self):
result = 'Exception'
manager = environments.EnvironmentManager(api)
try:
result = manager.update()
except TypeError:
pass
assert result is 'Exception'
def test_env_manager_get(self):
manager = environments.EnvironmentManager(api)
result = manager.get('test')
## WTF?
assert result.manager is not None
def test_env(self):
environment = environments.Environment(api, api)
assert environment.data() is not None
def test_ad_manager_list_with_one_parameter(self):
manager = services.ActiveDirectoryManager(api)
result = manager.list('datacenter1')
assert result == []
def test_ad_manager_list_with_all_parameters(self):
manager = services.ActiveDirectoryManager(api)
result = manager.list('test', '1')
assert result == []
def test_ad_manager_list_with_named_parameters(self):
manager = services.ActiveDirectoryManager(api)
result = manager.list(environment_id='test', session_id='1')
assert result == []
def test_ad_manager_list_with_named_parameter(self):
manager = services.ActiveDirectoryManager(api)
result = manager.list(environment_id='test')
assert result == []
def test_ad_manager_list_negative_without_parameters(self):
result = 'Exception'
manager = services.ActiveDirectoryManager(api)
try:
result = manager.list()
except TypeError:
pass
assert result is 'Exception'
def test_ad_manager_create(self):
manager = services.ActiveDirectoryManager(api)
result = manager.create('datacenter1', 'session1', 'test')
assert result.headers == {'X-Configuration-Session': 'session1'}
assert result.body == 'test'
def test_ad_manager_create_with_named_parameters(self):
manager = services.ActiveDirectoryManager(api)
result = manager.create(environment_id='datacenter1',
session_id='session2',
active_directory='test2')
assert result.headers == {'X-Configuration-Session': 'session2'}
assert result.body == 'test2'
def test_ad_manager_create_negative_with_two_parameters(self):
result = 'Exception'
manager = services.ActiveDirectoryManager(api)
try:
result = manager.create('datacenter1', 'session1')
except TypeError:
pass
assert result is 'Exception'
def test_ad_manager_create_negative_with_one_parameter(self):
result = 'Exception'
manager = services.ActiveDirectoryManager(api)
try:
result = manager.create('datacenter1')
except TypeError:
pass
assert result is 'Exception'
def test_ad_manager_create_negative_without_parameters(self):
result = 'Exception'
manager = services.ActiveDirectoryManager(api)
try:
result = manager.create()
except TypeError:
pass
assert result is 'Exception'
def test_ad_manager_delete(self):
manager = services.ActiveDirectoryManager(api)
result = manager.delete('datacenter1', 'session1', 'test')
assert result is None
def test_ad_manager_delete_with_named_parameters(self):
manager = services.ActiveDirectoryManager(api)
result = manager.delete(environment_id='datacenter1',
session_id='session1',
service_id='test')
assert result is None
def test_ad_manager_delete_negative_with_two_parameters(self):
result = 'Exception'
manager = services.ActiveDirectoryManager(api)
try:
result = manager.delete('datacenter1', 'session1')
except TypeError:
pass
assert result == 'Exception'
def test_ad_manager_delete_negative_with_one_parameter(self):
result = 'Exception'
manager = services.ActiveDirectoryManager(api)
try:
result = manager.delete('datacenter1')
except TypeError:
pass
assert result == 'Exception'
def test_ad_manager_delete_negative_without_parameters(self):
result = 'Exception'
manager = services.ActiveDirectoryManager(api)
try:
result = manager.delete()
except TypeError:
pass
assert result == 'Exception'
def test_iis_manager_list_with_one_parameter(self):
manager = services.WebServerManager(api)
result = manager.list('datacenter1')
assert result == []
def test_iis_manager_list_with_named_parameter(self):
manager = services.WebServerManager(api)
result = manager.list(environment_id='datacenter1')
assert result == []
def test_iis_manager_list_with_all_parameters(self):
manager = services.WebServerManager(api)
result = manager.list('test', '1')
assert result == []
def test_iis_manager_list_with_named_parameters(self):
manager = services.WebServerManager(api)
result = manager.list(environment_id='test',
session_id='1')
assert result == []
def test_iis_manager_list_negative_without_parameters(self):
result = 'Exception'
manager = services.WebServerManager(api)
try:
result = manager.list()
except TypeError:
pass
assert result == 'Exception'
def test_iis_manager_create(self):
manager = services.WebServerManager(api)
result = manager.create('datacenter1', 'session1', 'test')
assert result.headers == {'X-Configuration-Session': 'session1'}
assert result.body == 'test'
def test_iis_manager_create_with_named_parameters(self):
manager = services.WebServerManager(api)
result = manager.create(environment_id='datacenter',
session_id='session',
web_server='test2')
assert result.headers == {'X-Configuration-Session': 'session'}
assert result.body == 'test2'
def test_iis_manager_create_negative_with_two_parameters(self):
result = 'Exception'
manager = services.WebServerManager(api)
try:
result = manager.create('datacenter1', 'session1')
except TypeError:
pass
assert result == 'Exception'
def test_iis_manager_create_negative_with_one_parameter(self):
result = 'Exception'
manager = services.WebServerManager(api)
try:
result = manager.create('datacenter1')
except TypeError:
pass
assert result == 'Exception'
def test_iis_manager_create_negative_without_parameters(self):
result = 'Exception'
manager = services.WebServerManager(api)
try:
result = manager.create()
except TypeError:
pass
assert result == 'Exception'
def test_iis_manager_delete(self):
manager = services.WebServerManager(api)
result = manager.delete('datacenter1', 'session1', 'test')
assert result is None
def test_iis_manager_delete_with_named_parameters(self):
manager = services.WebServerManager(api)
result = manager.delete(environment_id='datacenter',
session_id='session',
service_id='test')
assert result is None
def test_iis_manager_delete_negative_with_two_parameters(self):
result = 'Exception'
manager = services.WebServerManager(api)
try:
result = manager.delete('datacenter1', 'session1')
except TypeError:
pass
assert result == 'Exception'
def test_iis_manager_delete_negative_with_one_parameter(self):
result = 'Exception'
manager = services.WebServerManager(api)
try:
result = manager.delete('datacenter1')
except TypeError:
pass
assert result == 'Exception'
def test_iis_manager_delete_negative_without_parameters(self):
result = 'Exception'
manager = services.WebServerManager(api)
try:
result = manager.delete()
except TypeError:
pass
assert result == 'Exception'
def test_service_ad(self):
service_ad = services.ActiveDirectory(api, api)
assert service_ad.data() is not None
def test_service_iis(self):
service_iis = services.ActiveDirectory(api, api)
assert service_iis.data() is not None
def test_session_manager_list(self):
manager = sessions.SessionManager(api)
result = manager.list('datacenter1')
assert result == []
def test_session_manager_list_with_named_parameters(self):
manager = sessions.SessionManager(api)
result = manager.list(environment_id='datacenter1')
assert result == []
def test_session_manager_list_negative_without_parameters(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.list()
except TypeError:
pass
assert result == 'Exception'
def test_session_manager_delete(self):
manager = sessions.SessionManager(api)
result = manager.delete('datacenter1', 'session1')
assert result is None
def test_session_manager_delete_with_named_parameters(self):
manager = sessions.SessionManager(api)
result = manager.delete(environment_id='datacenter1',
session_id='session1')
assert result is None
def test_session_manager_delete_negative_with_one_parameter(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.delete('datacenter1')
except TypeError:
pass
assert result == 'Exception'
def test_session_manager_delete_negative_without_parameters(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.delete()
except TypeError:
pass
assert result == 'Exception'
def test_session_manager_get(self):
manager = sessions.SessionManager(api)
result = manager.get('datacenter1', 'session1')
# WTF?
assert result.manager is not None
def test_session_manager_configure(self):
manager = sessions.SessionManager(api)
result = manager.configure('datacenter1')
assert result is not None
def test_session_manager_configure_with_named_parameter(self):
manager = sessions.SessionManager(api)
result = manager.configure(environment_id='datacenter1')
assert result is not None
def test_session_manager_configure_negative_without_parameters(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.configure()
except TypeError:
pass
assert result == 'Exception'
def test_session_manager_deploy(self):
manager = sessions.SessionManager(api)
result = manager.deploy('datacenter1', '1')
assert result is None
def test_session_manager_deploy_with_named_parameters(self):
manager = sessions.SessionManager(api)
result = manager.deploy(environment_id='datacenter1',
session_id='1')
assert result is None
def test_session_manager_deploy_negative_with_one_parameter(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.deploy('datacenter1')
except TypeError:
pass
assert result == 'Exception'
def test_session_manager_deploy_negative_without_parameters(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.deploy()
except TypeError:
pass
assert result == 'Exception'
def test_session_manager_reports(self):
manager = sessions.SessionManager(api)
result = manager.reports('datacenter1', '1')
assert result == []
def test_session_manager_reports_with_named_parameters(self):
manager = sessions.SessionManager(api)
result = manager.reports(environment_id='datacenter1',
session_id='1')
assert result == []
def test_session_manager_reports_negative_with_one_parameter(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.reports('datacenter1')
except TypeError:
pass
assert result == 'Exception'
def test_session_manager_reports_negative_without_parameters(self):
result = 'Exception'
manager = sessions.SessionManager(api)
try:
result = manager.reports()
except TypeError:
pass
assert result == 'Exception'

View File

@ -1,155 +0,0 @@
import os
import unittest
import logging
from mock import MagicMock
from mock import patch
from portasclient.client import Client as CommonClient
from portasclient.v1 import Client
import portasclient.v1.environments as environments
import portasclient.v1.services as services
import portasclient.v1.sessions as sessions
#import portasclient.shell as shell
#import portasclient.common.http as http
LOG = logging.getLogger('Unit tests')
def my_mock(*a, **b):
return [a, b]
api = MagicMock(json_request=my_mock)
class SanityUnitTests(unittest.TestCase):
def test_create_client_instance(self):
endpoint = 'http://localhost:8001'
test_client = Client(endpoint=endpoint, token='1', timeout=10)
assert test_client.environments is not None
assert test_client.sessions is not None
assert test_client.activeDirectories is not None
assert test_client.webServers is not None
def test_common_client(self):
endpoint = 'http://localhost:8001'
test_client = CommonClient('1', endpoint=endpoint, token='1', timeout=10)
assert test_client.environments is not None
assert test_client.sessions is not None
assert test_client.activeDirectories is not None
assert test_client.webServers is not None
def test_env_manager_list(self):
manager = environments.EnvironmentManager(api)
result = manager.list()
assert result == []
def test_env_manager_create(self):
manager = environments.EnvironmentManager(api)
result = manager.create('test')
assert result.headers == {}
assert result.body == {'name': 'test'}
def test_env_manager_delete(self):
manager = environments.EnvironmentManager(api)
result = manager.delete('test')
assert result is None
def test_env_manager_update(self):
manager = environments.EnvironmentManager(api)
result = manager.update('1', 'test')
assert result.body == {'name': 'test'}
def test_env_manager_get(self):
manager = environments.EnvironmentManager(api)
result = manager.get('test')
## WTF?
assert result.manager is not None
def test_env(self):
environment = environments.Environment(api, api)
assert environment.data() is not None
def test_ad_manager_list(self):
manager = services.ActiveDirectoryManager(api)
result = manager.list('datacenter1')
assert result == []
result = manager.list('datacenter1', '1')
assert result == []
def test_ad_manager_create(self):
manager = services.ActiveDirectoryManager(api)
result = manager.create('datacenter1', 'session1', 'test')
assert result.headers == {'X-Configuration-Session': 'session1'}
assert result.body == 'test'
#@unittest.skip("https://mirantis.jira.com/browse/KEERO-218")
def test_ad_manager_delete(self):
manager = services.ActiveDirectoryManager(api)
result = manager.delete('datacenter1', 'session1', 'test')
assert result is None
def test_iis_manager_list(self):
manager = services.WebServerManager(api)
result = manager.list('datacenter1')
assert result == []
result = manager.list('datacenter1', '1')
assert result == []
def test_iis_manager_create(self):
manager = services.WebServerManager(api)
result = manager.create('datacenter1', 'session1', 'test')
assert result.headers == {'X-Configuration-Session': 'session1'}
assert result.body == 'test'
#@unittest.skip("https://mirantis.jira.com/browse/KEERO-218")
def test_iis_manager_delete(self):
manager = services.WebServerManager(api)
result = manager.delete('datacenter1', 'session1', 'test')
assert result is None
def test_service_ad(self):
service_ad = services.ActiveDirectory(api, api)
assert service_ad.data() is not None
def test_service_iis(self):
service_iis = services.ActiveDirectory(api, api)
assert service_iis.data() is not None
def test_session_manager_list(self):
manager = sessions.SessionManager(api)
result = manager.list('datacenter1')
assert result == []
def test_session_manager_delete(self):
manager = sessions.SessionManager(api)
result = manager.delete('datacenter1', 'session1')
assert result is None
def test_session_manager_get(self):
manager = sessions.SessionManager(api)
result = manager.get('datacenter1', 'session1')
# WTF?
assert result.manager is not None
def test_session_manager_configure(self):
manager = sessions.SessionManager(api)
result = manager.configure('datacenter1')
assert result.headers == {}
def test_session_manager_deploy(self):
manager = sessions.SessionManager(api)
result = manager.deploy('datacenter1', '1')
assert result is None
#@unittest.skip("https://mirantis.jira.com/browse/KEERO-219")
def test_session_manager_reports(self):
manager = sessions.SessionManager(api)
result = manager.reports('datacenter1', '1')
assert result == []