some tests has been added

This commit is contained in:
Sergey Lukjanov
2013-02-25 14:15:43 +04:00
parent 44e24c1fd2
commit ad1fa53136

View File

@@ -3,6 +3,7 @@ import tempfile
import unittest
from eho.server.main import make_app
import eventlet
import os
@@ -36,7 +37,118 @@ class TestApi(unittest.TestCase):
del data.get(u'templates')[idx][u'id']
del data.get(u'templates')[idx][u'node_type'][u'id']
self.assertEquals(data, self._get_templates_stub_data())
def test_create_node_template(self):
rv = self.app.post('/v0.1/node-templates.json', data=json.dumps(dict(
name='test_template',
node_type='JT+NN',
tenant_id='test_tenant',
flavor_id='test_flavor',
configs={
'job_tracker': {
'heap_size': '1234'
},
'name_node': {
'heap_size': '2345'
}
}
)))
self.assertEquals(rv.status_code, 200)
data = json.loads(rv.data)
# clean all ids
del data[u'id']
del data.get(u'node_type')[u'id']
self.assertEquals(data, {
u'job_tracker': {
u'heap_size': u'1234'
}, u'name': u'test_template',
u'tenant_id': u'test_tenant',
u'node_type': {
u'processes': [
u'job_tracker', u'name_node'
],
u'name': u'JT+NN'
},
u'flavor_id': u'test_flavor',
u'name_node': {
u'heap_size': u'2345'
}
})
def test_list_clusters(self):
rv = self.app.get('/v0.1/clusters.json')
self.assertEquals(rv.status_code, 200)
data = json.loads(rv.data)
self.assertEquals(data, {
u'clusters': []
})
def test_create_clusters(self):
rv = self.app.post('/v0.1/clusters.json', data=json.dumps(dict(
name='test-cluster',
base_image_id='base-image-id',
tenant_id='tenant-id',
templates={
'jt_nn.xlarge': 1,
'tt_dn.large': 5
}
)))
self.assertEquals(rv.status_code, 200)
data = json.loads(rv.data)
cluster_id = data.pop(u'id')
self.assertEquals(data, {
u'status': u'Starting',
u'service_urls': {},
u'name': u'test-cluster',
u'tenant_id': u'tenant-id',
u'base_image_id': u'base-image-id',
u'node_templates': {
u'jt_nn.xlarge': 1,
u'tt_dn.large': 5
},
u'nodes': []
})
eventlet.sleep(3)
rv = self.app.get('/v0.1/clusters/%s.json' % cluster_id)
self.assertEquals(rv.status_code, 200)
data = json.loads(rv.data)
self.assertEquals(data.pop(u'id'), cluster_id)
# clean all ids
for idx in xrange(0, len(data.get(u'nodes'))):
del data.get(u'nodes')[idx][u'vm_id']
del data.get(u'nodes')[idx][u'node_template'][u'id']
self.assertEquals(data, {
u'status': u'Active',
u'service_urls': {},
u'name': u'test-cluster',
u'tenant_id': u'tenant-id',
u'base_image_id': u'base-image-id',
u'node_templates': {
u'jt_nn.xlarge': 1,
u'tt_dn.large': 5
},
u'nodes': [
{u'node_template': {u'name': u'jt_nn.xlarge'}},
{u'node_template': {u'name': u'tt_dn.large'}},
{u'node_template': {u'name': u'tt_dn.large'}},
{u'node_template': {u'name': u'tt_dn.large'}},
{u'node_template': {u'name': u'tt_dn.large'}},
{u'node_template': {u'name': u'tt_dn.large'}}
]
})
def _get_templates_stub_data(self):
return {
u'templates': [
{
u'job_tracker': {
@@ -181,16 +293,9 @@ class TestApi(unittest.TestCase):
],
u'name': u'TT+DN'},
u'flavor_id': u'm1.xlarge'
}]})
def test_list_clusters(self):
rv = self.app.get('/v0.1/clusters.json')
self.assertEquals(rv.status_code, 200)
data = json.loads(rv.data)
self.assertEquals(data, {
u'clusters': []
})
}
]
}
if __name__ == '__main__':