Merge "rehome get_updatable_fields into object utils"

This commit is contained in:
Zuul 2018-11-28 13:49:02 +00:00 committed by Gerrit Code Review
commit e1da9733cb
3 changed files with 33 additions and 4 deletions

View File

@ -98,3 +98,11 @@ class NotEqual(FilterObj):
def filter(self, column):
return column != self.value
def get_updatable_fields(cls, fields):
fields = fields.copy()
for field in cls.fields_no_update:
if field in fields:
del fields[field]
return fields

View File

@ -10,6 +10,8 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
from neutron_lib.objects import utils as obj_utils
from neutron_lib.tests import _base as base
@ -31,13 +33,15 @@ class TestUtils(base.BaseTestCase):
filter_obj = obj_utils.NotIn([1, 2, 3])
fake_column = FakeColumn([1, 2, 4, 5])
self.assertEqual([4, 5], filter_obj.filter(fake_column))
self.assertEqual([4, 5],
sorted(filter_obj.filter(fake_column)))
fake_column = FakeColumn([1, 2])
self.assertEqual([], filter_obj.filter(fake_column))
fake_column = FakeColumn([4, 5])
self.assertEqual([4, 5], filter_obj.filter(fake_column))
self.assertEqual([4, 5],
sorted(filter_obj.filter(fake_column)))
def test_get_objects_with_filters_not_equal(self):
@ -50,10 +54,23 @@ class TestUtils(base.BaseTestCase):
filter_obj = obj_utils.NotEqual(1)
fake_column = FakeColumn([1, 2, 4, 5])
self.assertEqual([2, 4, 5], filter_obj.filter(fake_column))
self.assertEqual([2, 4, 5],
sorted(filter_obj.filter(fake_column)))
fake_column = FakeColumn([1])
self.assertEqual([], filter_obj.filter(fake_column))
fake_column = FakeColumn([4, 5])
self.assertEqual([4, 5], filter_obj.filter(fake_column))
self.assertEqual([4, 5],
sorted(filter_obj.filter(fake_column)))
def test_get_updatable_fields(self):
mock_class = mock.Mock()
mock_class.fields_no_update = [0, 2, 6]
mock_fields = mock.Mock()
mock_fields.copy.return_value = {k: k for k in range(7)}
updatable = obj_utils.get_updatable_fields(mock_class, mock_fields)
self.assertEqual([1, 3, 4, 5],
sorted(list(updatable.keys())))

View File

@ -0,0 +1,4 @@
---
features:
- The ``get_updatable_fields`` function from ``neutron.objects.base`` is now
available in ``neutron_lib.object.utils``.