blob: 3ddcb5834b23a39e8669e4b5ba2e09371e32e7e0 [file] [log] [blame]
import unittest2 as unittest
from nose.plugins.attrib import attr
from tempest import exceptions
from tempest import openstack
import tempest.config
class FlavorsTest(unittest.TestCase):
release = tempest.config.TempestConfig().env.release_name
@classmethod
def setUpClass(cls):
cls.os = openstack.Manager()
cls.client = cls.os.flavors_client
cls.config = cls.os.config
cls.flavor_id = cls.config.env.flavor_ref
@attr(type='smoke')
def test_list_flavors(self):
"""List of all flavors should contain the expected flavor"""
resp, flavors = self.client.list_flavors()
resp, flavor = self.client.get_flavor_details(self.flavor_id)
flavor_min_detail = {'id': flavor['id'], 'links': flavor['links'],
'name': flavor['name']}
self.assertTrue(flavor_min_detail in flavors)
@attr(type='smoke')
def test_list_flavors_with_detail(self):
"""Detailed list of all flavors should contain the expected flavor"""
resp, flavors = self.client.list_flavors_with_detail()
resp, flavor = self.client.get_flavor_details(self.flavor_id)
self.assertTrue(flavor in flavors)
@attr(type='smoke')
def test_get_flavor(self):
"""The expected flavor details should be returned"""
resp, flavor = self.client.get_flavor_details(self.flavor_id)
self.assertEqual(self.flavor_id, str(flavor['id']))
@attr(type='negative')
def test_get_non_existant_flavor(self):
"""flavor details are not returned for non existant flavors"""
self.assertRaises(exceptions.NotFound, self.client.get_flavor_details,
999)
@unittest.skipIf(release == 'diablo', 'bug in diablo')
@attr(type='positive', bug='lp912922')
def test_list_flavors_limit_results(self):
"""Only the expected number of flavors should be returned"""
params = {'limit': 1}
resp, flavors = self.client.list_flavors(params)
self.assertEqual(1, len(flavors))
@unittest.skipIf(release == 'diablo', 'bug in diablo')
@attr(type='positive', bug='lp912922')
def test_list_flavors_detailed_limit_results(self):
"""Only the expected number of flavors (detailed) should be returned"""
params = {'limit': 1}
resp, flavors = self.client.list_flavors_with_detail(params)
self.assertEqual(1, len(flavors))
@unittest.expectedFailure
@attr(type='positive', bug='lp912922')
def test_list_flavors_using_marker(self):
"""The list of flavors should start from the provided marker"""
resp, flavors = self.client.list_flavors()
flavor_id = flavors[0]['id']
params = {'marker': flavor_id}
resp, flavors = self.client.list_flavors(params)
self.assertFalse(any([i for i in flavors if i['id'] == flavor_id]),
'The list of flavors did not start after the marker.')
@unittest.expectedFailure
@attr(type='positive', bug='lp912922')
def test_list_flavors_detailed_using_marker(self):
"""The list of flavors should start from the provided marker"""
resp, flavors = self.client.list_flavors_with_detail()
flavor_id = flavors[0]['id']
params = {'marker': flavor_id}
resp, flavors = self.client.list_flavors_with_detail(params)
self.assertFalse(any([i for i in flavors if i['id'] == flavor_id]),
'The list of flavors did not start after the marker.')
@unittest.skipIf(release == 'diablo', 'bug in diablo')
@attr(type='positive')
def test_list_flavors_detailed_filter_by_min_disk(self):
"""The detailed list of flavors should be filtered by disk space"""
resp, flavors = self.client.list_flavors_with_detail()
flavors = sorted(flavors, key=lambda k: k['disk'])
flavor_id = flavors[0]['id']
params = {'minDisk': flavors[1]['disk']}
resp, flavors = self.client.list_flavors_with_detail(params)
self.assertFalse(any([i for i in flavors if i['id'] == flavor_id]))
@unittest.skipIf(release == 'diablo', 'bug in diablo')
@attr(type='positive')
def test_list_flavors_detailed_filter_by_min_ram(self):
"""The detailed list of flavors should be filtered by RAM"""
resp, flavors = self.client.list_flavors_with_detail()
flavors = sorted(flavors, key=lambda k: k['ram'])
flavor_id = flavors[0]['id']
params = {'minRam': flavors[1]['ram']}
resp, flavors = self.client.list_flavors_with_detail(params)
self.assertFalse(any([i for i in flavors if i['id'] == flavor_id]))
@unittest.skipIf(release == 'diablo', 'bug in diablo')
@attr(type='positive')
def test_list_flavors_filter_by_min_disk(self):
"""The list of flavors should be filtered by disk space"""
resp, flavors = self.client.list_flavors_with_detail()
flavors = sorted(flavors, key=lambda k: k['disk'])
flavor_id = flavors[0]['id']
params = {'minDisk': flavors[1]['disk']}
resp, flavors = self.client.list_flavors(params)
self.assertFalse(any([i for i in flavors if i['id'] == flavor_id]))
@unittest.skipIf(release == 'diablo', 'bug in diablo')
@attr(type='positive')
def test_list_flavors_filter_by_min_ram(self):
"""The list of flavors should be filtered by RAM"""
resp, flavors = self.client.list_flavors_with_detail()
flavors = sorted(flavors, key=lambda k: k['ram'])
flavor_id = flavors[0]['id']
params = {'minRam': flavors[1]['ram']}
resp, flavors = self.client.list_flavors(params)
self.assertFalse(any([i for i in flavors if i['id'] == flavor_id]))