def setUp(self): super(TestFlavorChoiceField, self).setUp() self.requirements = { 'min_vcpus': 1, 'min_disk': 100, 'min_memory_mb': 500, 'max_vcpus': 5, 'max_disk': 5000, 'max_memory_mb': 16000 } kwargs = { 'requirements': self.requirements } self.flavor_choice_field = fields.FlavorChoiceField(**kwargs) self.flavor_choice_field.choices = [] self.flavor_choice_field.initial = None self.assertEqual(kwargs['requirements'], self.flavor_choice_field.requirements) self.request = {'request': mock.Mock()} self.tiny_flavor = mock.Mock() self.tiny_flavor.configure_mock(id='id1', name='m1.tiny') self.small_flavor = mock.Mock() self.small_flavor.configure_mock(id='id2', name='m1.small') self.medium_flavor = mock.Mock() self.medium_flavor.configure_mock(id='id3', name='m1.medium') self.addCleanup(mock.patch.stopall)
def test_no_matches_filter(self): """Check that no flavors are returned.""" self.mox.ReplayAll() # Fake a requirement for 4 CPUs, should return no flavors f = fields.FlavorChoiceField(requirements={'min_vcpus': 4}) initial_request = {} f.update(initial_request, self.request) self.assertEqual([], f.choices)
def test_multiple_filter(self): """Check that 2 flavors are returned.""" self.mox.ReplayAll() # Fake a requirement for 2 CPUs, should return medium and large f = fields.FlavorChoiceField(requirements={'min_vcpus': 2}) f.update({}, self.request) self.assertEqual([('id3', 'large'), ('id2', 'medium')], f.choices)
def test_no_matches_filter(self, mock_nova): mock_nova.novaclient().flavors.list.return_value = [] # Fake a requirement for 4 CPUs, should return no flavors f = fields.FlavorChoiceField(requirements={'min_vcpus': 4}) initial_request = {} f.update(initial_request, self.request) self.assertEqual([], f.choices)
def test_multiple_filter(self, mock_nova): mock_nova.novaclient().flavors.list.return_value = [ FlavorFlave('id2', 'medium', vcpus=2, disk=100, ram=2000), FlavorFlave('id3', 'large', vcpus=3, disk=750, ram=4000)] f = fields.FlavorChoiceField(requirements={'min_vcpus': 2}) f.update({}, self.request) self.assertEqual([('id3', 'large'), ('id2', 'medium')], f.choices)
def test_no_filter(self): """Check that all flavors are returned.""" self.mox.ReplayAll() # No requirements, should return all flavors f = fields.FlavorChoiceField() initial_request = {} f.update(initial_request, self.request) self.assertEqual([('id3', 'large'), ('id2', 'medium'), ('id1', 'small')], f.choices)
def test_single_filter(self): """Check that one flavor is returned.""" self.mox.ReplayAll() # Fake a requirement for 2 CPUs and 200 GB disk, should return medium f = fields.FlavorChoiceField(requirements={ 'min_vcpus': 2, 'min_disk': 200 }) initial_request = {} f.update(initial_request, self.request) self.assertEqual([('id3', 'large')], f.choices)
def test_single_filter(self, mock_nova): """Check that one flavor is returned.""" mock_nova.novaclient().flavors.list.return_value = [ FlavorFlave('id3', 'large', vcpus=3, disk=750, ram=4000)] # Fake a requirement for 2 CPUs and 200 GB disk, should return large f = fields.FlavorChoiceField( requirements={'min_vcpus': 2, 'min_disk': 200}) initial_request = {} f.update(initial_request, self.request) self.assertEqual([('id3', 'large')], f.choices)
def test_no_filter(self, mock_nova): # No requirements, should return all flavors mock_nova.novaclient().flavors.list.return_value = [ FlavorFlave('id1', 'small', vcpus=1, disk=50, ram=1000), FlavorFlave('id2', 'medium', vcpus=2, disk=100, ram=2000), FlavorFlave('id3', 'large', vcpus=3, disk=750, ram=4000) ] f = fields.FlavorChoiceField() initial_request = {} f.update(initial_request, self.request) self.assertEqual([('id3', 'large'), ('id2', 'medium'), ('id1', 'small')], f.choices)