Add new username type

Parsing usernames would be a fairly common thing todo from heat
metadata, this type allows what would be expected to cover most sane
usernames.

Change-Id: I3a5577d2c5bef1ce54629a0b99e2dc085d274f02
This commit is contained in:
Derek Higgins
2014-01-20 12:13:58 +00:00
parent 7575d45ed2
commit 9752e5b261
2 changed files with 14 additions and 0 deletions

View File

@@ -143,3 +143,16 @@ class ValueTypeTestCase(testtools.TestCase):
value_types.ensure_type,
test_swiftdevices,
'swiftdevices')
def test_username(self):
for test_username in ['guest', 'guest_13-42']:
self.assertEqual(test_username, value_types.ensure_type(
test_username,
'username'))
def test_username_bad(self):
for test_username in ['guest`ls`', 'guest$PASSWD', 'guest 2']:
self.assertRaises(config_exception.ConfigException,
value_types.ensure_type,
test_username,
'username')

View File

@@ -28,6 +28,7 @@ TYPES = {
"(?#/dbname)(/[a-zA-Z0-9_-]+)?"
"(?#?variable=value)(\?[a-zA-Z0-9=_-]+)?$",
"swiftdevices": "^(r\d+z\d+-[A-Za-z0-9.-_]+:%PORT%/[^,]+,?)+$",
"username": "^[A-Za-z0-9_-]+$",
"raw": ""
}