Add uuidsentinel test module
This adds a module that behaves like mock.sentinel, but that returns UUIDs suitable for use in tests where we need that specifically. Change-Id: Ie15c0becad4f016ae730c7fa47d6ec21fdec8783
This commit is contained in:
parent
415b221e33
commit
efe7df9239
30
nova/tests/unit/test_uuid_sentinels.py
Normal file
30
nova/tests/unit/test_uuid_sentinels.py
Normal file
@ -0,0 +1,30 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import testtools
|
||||
|
||||
from oslo_utils import uuidutils
|
||||
|
||||
from nova.tests import uuidsentinel
|
||||
|
||||
|
||||
class TestUUIDSentinels(testtools.TestCase):
|
||||
def test_different_sentinel(self):
|
||||
uuid1 = uuidsentinel.foobar
|
||||
uuid2 = uuidsentinel.barfoo
|
||||
self.assertNotEqual(uuid1, uuid2)
|
||||
|
||||
def test_returns_uuid(self):
|
||||
self.assertTrue(uuidutils.is_uuid_like(uuidsentinel.foo))
|
||||
|
||||
def test_returns_string(self):
|
||||
self.assertIsInstance(uuidsentinel.foo, str)
|
30
nova/tests/uuidsentinel.py
Normal file
30
nova/tests/uuidsentinel.py
Normal file
@ -0,0 +1,30 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import sys
|
||||
|
||||
|
||||
class UUIDSentinels(object):
|
||||
def __init__(self):
|
||||
from oslo_utils import uuidutils
|
||||
self._uuid_module = uuidutils
|
||||
self._sentinels = {}
|
||||
|
||||
def __getattr__(self, name):
|
||||
if name.startswith('_'):
|
||||
raise ValueError('Sentinels must not start with _')
|
||||
if name not in self._sentinels:
|
||||
self._sentinels[name] = str(self._uuid_module.generate_uuid())
|
||||
return self._sentinels[name]
|
||||
|
||||
|
||||
sys.modules[__name__] = UUIDSentinels()
|
Loading…
Reference in New Issue
Block a user