fuel-main/nailgun/test/test_cluster_handler.py
2012-09-05 18:35:57 +04:00

123 lines
4.3 KiB
Python

# -*- coding: utf-8 -*-
import json
from paste.fixture import TestApp
from api.models import Cluster, Node
from base import BaseHandlers
from base import reverse
class TestHandlers(BaseHandlers):
def test_cluster_put_attach_node(self):
pass
def test_cluster_put_attach_attached_node(self):
pass
def test_cluster_put_detach_node(self):
pass
def test_cluster_delete(self):
cluster = self.create_default_cluster()
resp = self.app.delete(
reverse('ClusterHandler', kwargs={'cluster_id': cluster.id}),
headers=self.default_headers
)
self.assertEquals(204, resp.status)
self.assertEquals('', resp.body)
def test_cluster_get(self):
cluster = self.create_default_cluster()
resp = self.app.get(
reverse('ClusterHandler', kwargs={'cluster_id': cluster.id}),
headers=self.default_headers
)
self.assertEquals(200, resp.status)
response = json.loads(resp.body)
self.assertEquals(cluster.id, response['id'])
self.assertEquals(cluster.name, response['name'])
self.assertEquals(cluster.nodes, response['nodes'])
self.assertEquals(cluster.release.id, response['release']['id'])
def test_cluster_creation_without_nodes(self):
release = self.create_default_release()
yet_another_cluster_name = 'Yet another cluster'
resp = self.app.post(
'/api/clusters',
params=json.dumps({
'name': yet_another_cluster_name,
'release': release.id
}),
headers=self.default_headers
)
self.assertEquals(201, resp.status)
response = json.loads(resp.body)
self.assertEquals(yet_another_cluster_name, response['name'])
self.assertEquals([], response['nodes'])
self.assertEquals(release.id, response['release']['id'])
def test_cluster_creation_with_nodes(self):
release = self.create_default_release()
node = self.create_default_node()
yet_another_cluster_name = u'Yet another cluster'
resp = self.app.post(
'/api/clusters',
params=json.dumps({
'name': yet_another_cluster_name,
'release': release.id,
'nodes': [node.id]
}),
headers=self.default_headers
)
self.assertEquals(201, resp.status)
response = json.loads(resp.body)
self.assertEquals(yet_another_cluster_name, response['name'])
self.assertEquals(1, len(response['nodes']))
self.assertEquals(release.id, response['release']['id'])
def test_cluster_update(self):
updated_name = u'Updated cluster'
cluster = self.create_default_cluster()
clusters_before = len(self.db.query(Cluster).all())
resp = self.app.put(
reverse('ClusterHandler', kwargs={'cluster_id': cluster.id}),
json.dumps({'name': updated_name}),
headers=self.default_headers
)
self.db.refresh(cluster)
self.assertEquals(resp.status, 200)
clusters = self.db.query(Cluster).filter(
Cluster.name == updated_name
).all()
self.assertEquals(len(clusters), 1)
self.assertEquals(clusters[0].name, updated_name)
clusters_after = len(self.db.query(Cluster).all())
self.assertEquals(clusters_before, clusters_after)
def test_cluster_node_list_update(self):
node1 = self.create_default_node()
node2 = self.create_default_node()
cluster = self.create_default_cluster()
resp = self.app.put(
reverse('ClusterHandler', kwargs={'cluster_id': cluster.id}),
json.dumps({'nodes': [node1.id]}),
headers=self.default_headers
)
self.assertEquals(resp.status, 200)
nodes = self.db.query(Node).filter(Node.cluster == cluster).all()
self.assertEquals(1, len(nodes))
self.assertEquals(nodes[0].id, node1.id)
resp = self.app.put(
reverse('ClusterHandler', kwargs={'cluster_id': 1}),
json.dumps({'nodes': [node2.id]}),
headers=self.default_headers
)
self.assertEquals(resp.status, 200)
nodes = self.db.query(Node).filter(Node.cluster == cluster)
self.assertEquals(1, nodes.count())