blob: 254a969a8f4cd6c0b2d09be7166fa16475250b83 [file] [log] [blame]
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +03001# -*- coding: utf-8 -*-
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +03002# Licensed under the Apache License, Version 2.0 (the "License"); you may
3# not use this file except in compliance with the License. You may obtain
4# a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11# License for the specific language governing permissions and limitations
12# under the License.
13
Adam Gandelman2a86f1c2014-06-18 11:34:42 -070014from tempest.api.baremetal.admin import base
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030015from tempest.common.utils import data_utils
16from tempest import exceptions as exc
17from tempest import test
18
19
20class TestChassis(base.BaseBaremetalTest):
21 """Tests for chassis."""
22
Mh Raiesa9bb79d2014-04-17 16:20:17 +053023 @classmethod
24 def setUpClass(cls):
25 super(TestChassis, cls).setUpClass()
26 _, cls.chassis = cls.create_chassis()
27
28 def _assertExpected(self, expected, actual):
29 # Check if not expected keys/values exists in actual response body
30 for key, value in expected.iteritems():
31 if key not in ('created_at', 'updated_at'):
32 self.assertIn(key, actual)
33 self.assertEqual(value, actual[key])
34
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030035 @test.attr(type='smoke')
36 def test_create_chassis(self):
37 descr = data_utils.rand_name('test-chassis-')
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000038 _, chassis = self.create_chassis(description=descr)
Mh Raiesa9bb79d2014-04-17 16:20:17 +053039 self.assertEqual(chassis['description'], descr)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030040
41 @test.attr(type='smoke')
42 def test_create_chassis_unicode_description(self):
43 # Use a unicode string for testing:
44 # 'We ♡ OpenStack in Ukraine'
45 descr = u'В Україні ♡ OpenStack!'
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000046 _, chassis = self.create_chassis(description=descr)
Mh Raiesa9bb79d2014-04-17 16:20:17 +053047 self.assertEqual(chassis['description'], descr)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030048
49 @test.attr(type='smoke')
50 def test_show_chassis(self):
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000051 _, chassis = self.client.show_chassis(self.chassis['uuid'])
Mh Raiesa9bb79d2014-04-17 16:20:17 +053052 self._assertExpected(self.chassis, chassis)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030053
54 @test.attr(type="smoke")
55 def test_list_chassis(self):
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000056 _, body = self.client.list_chassis()
Mh Raiesa9bb79d2014-04-17 16:20:17 +053057 self.assertIn(self.chassis['uuid'],
58 [i['uuid'] for i in body['chassis']])
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030059
60 @test.attr(type='smoke')
61 def test_delete_chassis(self):
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000062 _, body = self.create_chassis()
Mh Raiesa9bb79d2014-04-17 16:20:17 +053063 uuid = body['uuid']
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030064
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000065 self.delete_chassis(uuid)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030066 self.assertRaises(exc.NotFound, self.client.show_chassis, uuid)
67
68 @test.attr(type='smoke')
69 def test_update_chassis(self):
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000070 _, body = self.create_chassis()
Mh Raiesa9bb79d2014-04-17 16:20:17 +053071 uuid = body['uuid']
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030072
73 new_description = data_utils.rand_name('new-description-')
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000074 _, body = (self.client.update_chassis(uuid,
75 description=new_description))
76 _, chassis = self.client.show_chassis(uuid)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030077 self.assertEqual(chassis['description'], new_description)