コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
    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)
コード例 #7
0
    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)
コード例 #8
0
    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)
コード例 #9
0
    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)