summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzu-Mainn Chen <tzumainn@redhat.com>2013-07-30 16:46:41 -0400
committerTomas Sedovic <tomas@sedovic.cz>2013-08-01 16:18:58 +0200
commit544cef78a6c45213a86ed0421bba94ab9d6a5e1d (patch)
tree8e3b019bbee385cae2ca69f85e5ad4e687d20256
parent396d76856bee4078935e1a582fcb6a0806144aba (diff)
downloadtuskar-ui-544cef78a6c45213a86ed0421bba94ab9d6a5e1d.tar.gz
Fixed rack tests
This patch fixes the tests. There's one failure left; fixing it requires stubbing out the baremetal client, which I'm holding off on doing for now. Change-Id: I30e5ffd187a3309906909e7f0a75583d957c42fc
-rw-r--r--openstack_dashboard/api/tuskar.py3
-rw-r--r--openstack_dashboard/dashboards/infrastructure/resource_management/racks/tests.py32
-rw-r--r--openstack_dashboard/test/api_tests/tuskar_tests.py12
-rw-r--r--openstack_dashboard/test/test_data/tuskar_data.py2
4 files changed, 36 insertions, 13 deletions
diff --git a/openstack_dashboard/api/tuskar.py b/openstack_dashboard/api/tuskar.py
index a0b15ab7..bebccc70 100644
--- a/openstack_dashboard/api/tuskar.py
+++ b/openstack_dashboard/api/tuskar.py
@@ -735,8 +735,7 @@ class ResourceClass(StringIdAPIResourceWrapper):
@property
def nodes(self):
if not hasattr(self, '_nodes'):
- nodes_array = [rack.nodes for rack in self.racks]
- self._nodes = [node for nodes in nodes_array for node in nodes]
+ self._nodes = [rack.list_nodes for rack in self.list_racks]
return self._nodes
@property
diff --git a/openstack_dashboard/dashboards/infrastructure/resource_management/racks/tests.py b/openstack_dashboard/dashboards/infrastructure/resource_management/racks/tests.py
index 1570ab07..63e1ed1f 100644
--- a/openstack_dashboard/dashboards/infrastructure/resource_management/racks/tests.py
+++ b/openstack_dashboard/dashboards/infrastructure/resource_management/racks/tests.py
@@ -43,13 +43,18 @@ class RackViewTests(test.BaseAdminViewTests):
# to circle back and fix these tests.
#
@test.create_stubs({api.tuskar.Rack: ('list', 'create',),
- api.tuskar.ResourceClass: ('list',)})
+ api.tuskar.ResourceClass: ('list',),
+ api.nova.baremetal.BareMetalNodeManager: ('create',)})
def test_create_rack_post(self):
api.tuskar.Rack.list(
IsA(http.request.HttpRequest)).AndReturn(
self.tuskar_racks.list())
- api.tuskar.Rack.create(IsA(http.request.HttpRequest), 'New Rack',
- u'1', 'Tokyo', '1.2.3.4').AndReturn(None)
+ api.nova.baremetal.BareMetalNodeManager.create(
+ 'New Node', u'1', u'1024', u'10', 'aa:bb:cc:dd:ee',
+ u'', u'', u'', u'').AndReturn(None)
+ api.tuskar.Rack.create(
+ IsA(http.request.HttpRequest), 'New Rack',
+ u'1', 'Tokyo', '1.2.3.4', [{'id': None}]).AndReturn(None)
api.tuskar.ResourceClass.list(
IsA(http.request.HttpRequest)).AndReturn(
self.tuskar_resource_classes.list())
@@ -57,7 +62,9 @@ class RackViewTests(test.BaseAdminViewTests):
self.mox.ReplayAll()
data = {'name': 'New Rack', 'resource_class_id': u'1',
- 'location': 'Tokyo', 'subnet': '1.2.3.4'}
+ 'location': 'Tokyo', 'subnet': '1.2.3.4',
+ 'node_name': 'New Node', 'prov_mac_address': 'aa:bb:cc:dd:ee',
+ 'cpus': u'1', 'memory_mb': u'1024', 'local_gb': u'10'}
url = reverse('horizon:infrastructure:resource_management:'
'racks:create')
resp = self.client.post(url, data)
@@ -70,13 +77,15 @@ class RackViewTests(test.BaseAdminViewTests):
api.tuskar.Rack.\
get(IsA(http.HttpRequest), rack.id).\
- AndReturn(rack)
+ MultipleTimes().AndReturn(rack)
api.tuskar.ResourceClass.list(
IsA(http.request.HttpRequest)).AndReturn(
self.tuskar_resource_classes.list())
self.mox.ReplayAll()
+ api.tuskar.Rack.list_nodes = []
+
url = reverse('horizon:infrastructure:resource_management:' +
'racks:edit', args=[1])
res = self.client.get(url)
@@ -89,18 +98,23 @@ class RackViewTests(test.BaseAdminViewTests):
def test_edit_rack_post(self):
rack = self.tuskar_racks.first()
+ rack_data = {'name': 'Updated Rack', 'resource_class_id': u'1',
+ 'rack_id': u'1', 'location': 'New Location',
+ 'subnet': '127.10.10.0/24', 'node_macs': None}
+
data = {'name': 'Updated Rack', 'resource_class_id': u'1',
'rack_id': u'1', 'location': 'New Location',
- 'subnet': '127.10.10.0/24', 'node_macs': 'foo'}
+ 'subnet': '127.10.10.0/24', 'node_macs': None,
+ 'node_name': 'New Node', 'prov_mac_address': 'aa:bb:cc:dd:ee',
+ 'cpus': u'1', 'memory_mb': u'1024', 'local_gb': u'10'}
api.tuskar.Rack.get(
- IsA(http.HttpRequest),
- rack.id).\
+ IsA(http.HttpRequest), rack.id).MultipleTimes().\
AndReturn(rack)
api.tuskar.Rack.list(
IsA(http.request.HttpRequest)).AndReturn(
self.tuskar_racks.list())
- api.tuskar.Rack.update(IsA(http.HttpRequest), rack.id, data)
+ api.tuskar.Rack.update(IsA(http.HttpRequest), rack.id, rack_data)
api.tuskar.ResourceClass.list(
IsA(http.request.HttpRequest)).AndReturn(
self.tuskar_resource_classes.list())
diff --git a/openstack_dashboard/test/api_tests/tuskar_tests.py b/openstack_dashboard/test/api_tests/tuskar_tests.py
index b070c120..4730c44b 100644
--- a/openstack_dashboard/test/api_tests/tuskar_tests.py
+++ b/openstack_dashboard/test/api_tests/tuskar_tests.py
@@ -77,9 +77,19 @@ class TuskarApiTests(test.APITestCase):
self.assertIsInstance(rack, api.tuskar.Rack)
self.assertEquals(1, len(rc.list_racks))
+ ## FIXME: we need to stub out the bare metal client, will
+ ## be easier once the client is separated out a bit
def test_resource_class_nodes(self):
rc = self.tuskar_resource_classes.first()
- for node in rc.list_nodes:
+ r = self.tuskar_racks.first()
+ n = self.nodes.first()
+
+ tuskarclient = self.stub_tuskarclient()
+ tuskarclient.racks = self.mox.CreateMockAnything()
+ tuskarclient.racks.get(r.id).AndReturn(r)
+ self.mox.ReplayAll()
+
+ for node in rc.nodes:
self.assertIsInstance(node, api.tuskar.Node)
self.assertEquals(4, len(rc.nodes))
diff --git a/openstack_dashboard/test/test_data/tuskar_data.py b/openstack_dashboard/test/test_data/tuskar_data.py
index 11474c32..08c42da7 100644
--- a/openstack_dashboard/test/test_data/tuskar_data.py
+++ b/openstack_dashboard/test/test_data/tuskar_data.py
@@ -122,7 +122,7 @@ def data(TEST):
location='location',
subnet='192.168.1.0/24',
state='provisioned',
- nodes=[{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}],
+ nodes=[{'id': '1'}, {'id': '2'}, {'id': '3'}, {'id': '4'}],
resource_class={'id': '1'}))
TEST.tuskar_racks.add(rack_1)