Fix uuidsentinel to follow getattr protocol
This patch changes the exception type raise by uuidsentinel when the sentinel name starts with '_'. The __getattr__ protocol requires to raise an AttributeError if the attribute value cannot be returned. Closes-Bug: #1885281 Change-Id: I1076a957a19507e7d96ef429c0ae5d0ee8a90e66
This commit is contained in:
parent
b9938230f9
commit
bc562f3393
@ -79,7 +79,7 @@ class _UUIDSentinels(object):
|
||||
|
||||
def __getattr__(self, name):
|
||||
if name.startswith('_'):
|
||||
raise ValueError('Sentinels must not start with _')
|
||||
raise AttributeError('Sentinels must not start with _')
|
||||
with self._lock:
|
||||
if name not in self._sentinels:
|
||||
self._sentinels[name] = uuidutils.generate_uuid()
|
||||
|
@ -80,5 +80,5 @@ class UUIDSentinelsTest(test_base.BaseTestCase):
|
||||
self.assertIsInstance(uuids.foo, str)
|
||||
|
||||
def test_with_underline_prefix(self):
|
||||
ex = self.assertRaises(ValueError, getattr, uuids, '_foo')
|
||||
ex = self.assertRaises(AttributeError, getattr, uuids, '_foo')
|
||||
self.assertIn("Sentinels must not start with _", six.text_type(ex))
|
||||
|
Loading…
Reference in New Issue
Block a user