some tests has been added
This commit is contained in:
@@ -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__':
|
||||
|
||||
Reference in New Issue
Block a user