Stop using md5 for __repr__ of objects
The md5 function is not available on systems in FIPS mode, just use the callable name (which is closer to how repr usually looks). Change-Id: I4319ce2f42f35251595306b9a77ae1f8bc55595c
This commit is contained in:
parent
3c47122f36
commit
8aecabcfe4
@ -14,8 +14,6 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import ast
|
import ast
|
||||||
import hashlib
|
|
||||||
import inspect
|
|
||||||
|
|
||||||
from oslo_versionedobjects import fields as object_fields
|
from oslo_versionedobjects import fields as object_fields
|
||||||
|
|
||||||
@ -57,10 +55,7 @@ class StringFieldThatAcceptsCallable(object_fields.StringField):
|
|||||||
default = self._default
|
default = self._default
|
||||||
if (self._default != object_fields.UnspecifiedDefault
|
if (self._default != object_fields.UnspecifiedDefault
|
||||||
and callable(self._default)):
|
and callable(self._default)):
|
||||||
default = "%s-%s" % (
|
default = '<function %s>' % default.__name__
|
||||||
self._default.__name__,
|
|
||||||
hashlib.md5(inspect.getsource(
|
|
||||||
self._default).encode()).hexdigest())
|
|
||||||
return '%s(default=%s,nullable=%s)' % (self._type.__class__.__name__,
|
return '%s(default=%s,nullable=%s)' % (self._type.__class__.__name__,
|
||||||
default, self._nullable)
|
default, self._nullable)
|
||||||
|
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import hashlib
|
|
||||||
import inspect
|
|
||||||
|
|
||||||
from ironic.common import exception
|
from ironic.common import exception
|
||||||
from ironic.objects import fields
|
from ironic.objects import fields
|
||||||
from ironic.tests import base as test_base
|
from ironic.tests import base as test_base
|
||||||
@ -73,8 +70,6 @@ class TestStringFieldThatAcceptsCallable(test_base.TestCase):
|
|||||||
def test_default_function():
|
def test_default_function():
|
||||||
return "default value"
|
return "default value"
|
||||||
|
|
||||||
self.test_default_function_hash = hashlib.md5(
|
|
||||||
inspect.getsource(test_default_function).encode()).hexdigest()
|
|
||||||
self.field = fields.StringFieldThatAcceptsCallable(
|
self.field = fields.StringFieldThatAcceptsCallable(
|
||||||
default=test_default_function)
|
default=test_default_function)
|
||||||
|
|
||||||
@ -102,8 +97,8 @@ class TestStringFieldThatAcceptsCallable(test_base.TestCase):
|
|||||||
self.field.coerce('obj', 'attr', None))
|
self.field.coerce('obj', 'attr', None))
|
||||||
|
|
||||||
def test__repr__includes_default_function_name_and_source_hash(self):
|
def test__repr__includes_default_function_name_and_source_hash(self):
|
||||||
expected = ('StringAcceptsCallable(default=test_default_function-%s,'
|
expected = ('StringAcceptsCallable(default=<function '
|
||||||
'nullable=False)' % self.test_default_function_hash)
|
'test_default_function>,nullable=False)')
|
||||||
self.assertEqual(expected, repr(self.field))
|
self.assertEqual(expected, repr(self.field))
|
||||||
|
|
||||||
|
|
||||||
|
@ -89,7 +89,6 @@ tests:
|
|||||||
# (optional) list skipped test IDs here, eg '[B101, B406]':
|
# (optional) list skipped test IDs here, eg '[B101, B406]':
|
||||||
skips:
|
skips:
|
||||||
- B104
|
- B104
|
||||||
- B303
|
|
||||||
- B604
|
- B604
|
||||||
|
|
||||||
### (optional) plugin settings - some test plugins require configuration data
|
### (optional) plugin settings - some test plugins require configuration data
|
||||||
|
Loading…
Reference in New Issue
Block a user