From 626368a9a9f76992cb18dffa25d0f4dac000164a Mon Sep 17 00:00:00 2001 From: Cedric Brandily Date: Fri, 26 Dec 2014 16:22:24 +0100 Subject: [PATCH] Support non-lowercase uuids in is_uuid_like According to RFC 4122 (on uuid), uuids are case insensitive but currently is_uuid_like returns False if the input is a non-lowercase string. This change adds non-lowercase uuid support in is_uuid_like. Change-Id: Ie017e183c3ee36b8dea9c1aa82cdb697c26bbf17 Closes-Bug: #1405624 --- oslo/utils/uuidutils.py | 3 ++- tests/test_uuidutils.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/oslo/utils/uuidutils.py b/oslo/utils/uuidutils.py index 52c1ded..62b0b5f 100644 --- a/oslo/utils/uuidutils.py +++ b/oslo/utils/uuidutils.py @@ -28,7 +28,8 @@ def _format_uuid_string(string): return (string.replace('urn:', '') .replace('uuid:', '') .strip('{}') - .replace('-', '')) + .replace('-', '') + .lower()) def is_uuid_like(val): diff --git a/tests/test_uuidutils.py b/tests/test_uuidutils.py index 14512e0..63e5551 100644 --- a/tests/test_uuidutils.py +++ b/tests/test_uuidutils.py @@ -44,6 +44,9 @@ class UUIDUtilsTest(test_base.BaseTestCase): self.assertTrue(uuidutils.is_uuid_like( '{}---bbb---aaa--aaa--aaa-----aaa---aaa--bbb-bbb---bbb-bbb-bb-{}')) + def test_is_uuid_like_insensitive(self): + self.assertTrue(uuidutils.is_uuid_like(str(uuid.uuid4()).upper())) + def test_id_is_uuid_like(self): self.assertFalse(uuidutils.is_uuid_like(1234567))