Fail-fast for invalid read_deleted values
Fixes bug 961588 Change-Id: Ib02d89485cdf4626698b959a2136841109cdc51f
This commit is contained in:
parent
4944a612e0
commit
521108d5b9
@ -55,9 +55,6 @@ class RequestContext(object):
|
||||
:param kwargs: Extra arguments that might be present, but we ignore
|
||||
because they possibly came in from older rpc messages.
|
||||
"""
|
||||
if read_deleted not in ('no', 'yes', 'only'):
|
||||
raise ValueError(_("read_deleted can only be one of 'no', "
|
||||
"'yes' or 'only', not %r") % read_deleted)
|
||||
if kwargs:
|
||||
LOG.warn(_('Arguments dropped when creating context: %s') %
|
||||
str(kwargs))
|
||||
@ -85,6 +82,21 @@ class RequestContext(object):
|
||||
if overwrite or not hasattr(local.store, 'context'):
|
||||
self.update_store()
|
||||
|
||||
def _get_read_deleted(self):
|
||||
return self._read_deleted
|
||||
|
||||
def _set_read_deleted(self, read_deleted):
|
||||
if read_deleted not in ('no', 'yes', 'only'):
|
||||
raise ValueError(_("read_deleted can only be one of 'no', "
|
||||
"'yes' or 'only', not %r") % read_deleted)
|
||||
self._read_deleted = read_deleted
|
||||
|
||||
def _del_read_deleted(self):
|
||||
del self._read_deleted
|
||||
|
||||
read_deleted = property(_get_read_deleted, _set_read_deleted,
|
||||
_del_read_deleted)
|
||||
|
||||
def update_store(self):
|
||||
local.store.context = self
|
||||
|
||||
|
@ -38,6 +38,9 @@ class ContextTestCase(test.TestCase):
|
||||
read_deleted='yes')
|
||||
self.assertEquals(ctxt.read_deleted, 'yes')
|
||||
|
||||
ctxt.read_deleted = 'no'
|
||||
self.assertEquals(ctxt.read_deleted, 'no')
|
||||
|
||||
def test_request_context_read_deleted_invalid(self):
|
||||
self.assertRaises(ValueError,
|
||||
context.RequestContext,
|
||||
@ -45,6 +48,13 @@ class ContextTestCase(test.TestCase):
|
||||
'222',
|
||||
read_deleted=True)
|
||||
|
||||
ctxt = context.RequestContext('111', '222')
|
||||
self.assertRaises(ValueError,
|
||||
setattr,
|
||||
ctxt,
|
||||
'read_deleted',
|
||||
True)
|
||||
|
||||
def test_extra_args_to_context_get_logged(self):
|
||||
info = {}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user