From da64d4bb888bf60a5452288d212fce2d6191fc91 Mon Sep 17 00:00:00 2001
From: Dan Smith <dansmith@redhat.com>
Date: Wed, 9 Dec 2015 07:41:47 -0800
Subject: [PATCH] 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
---
 nova/tests/uuidsentinel.py | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 nova/tests/uuidsentinel.py

diff --git a/nova/tests/uuidsentinel.py b/nova/tests/uuidsentinel.py
new file mode 100644
index 000000000..5011d7a8f
--- /dev/null
+++ b/nova/tests/uuidsentinel.py
@@ -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()