Merge pull request #1852 from coreos-inc/underscore_orgs
Better handling of namespace validation to fix a number of issues
This commit is contained in:
commit
67dde6e154
11 changed files with 126 additions and 21 deletions
|
@ -551,7 +551,7 @@ class TestCreateNewUser(ApiTestCase):
|
|||
email='test@example.com'),
|
||||
expected_code=400)
|
||||
|
||||
self.assertEquals('Invalid username auserName: Username must match expression [a-z0-9_]+',
|
||||
self.assertEquals('Invalid username auserName: Username must match expression ^([a-z0-9]+(?:[._-][a-z0-9]+)*)$',
|
||||
json['detail'])
|
||||
|
||||
def test_createuser(self):
|
||||
|
|
|
@ -4,12 +4,45 @@ import magic
|
|||
from itertools import islice
|
||||
from semantic_version import Version, Spec
|
||||
|
||||
from util.validation import generate_valid_usernames
|
||||
from util.validation import generate_valid_usernames, validate_username
|
||||
from util.registry.generatorfile import GeneratorFile
|
||||
from util.registry.dockerver import docker_version
|
||||
from util import slash_join
|
||||
from _pyio import BufferedReader
|
||||
|
||||
class TestUsernameValidation(unittest.TestCase):
|
||||
def assertValid(self, username):
|
||||
result, _ = validate_username(username)
|
||||
self.assertTrue(result)
|
||||
|
||||
def assertInvalid(self, username):
|
||||
result, _ = validate_username(username)
|
||||
self.assertFalse(result)
|
||||
|
||||
def test_valid(self):
|
||||
self.assertValid('jake')
|
||||
self.assertValid('ja_ke')
|
||||
self.assertValid('te-st')
|
||||
self.assertValid('te.st')
|
||||
|
||||
def test_properlength(self):
|
||||
self.assertValid('z' * 30)
|
||||
|
||||
def test_tooshort(self):
|
||||
self.assertInvalid('j')
|
||||
self.assertInvalid('ja')
|
||||
self.assertInvalid('jk')
|
||||
|
||||
def test_toolong(self):
|
||||
self.assertInvalid('z' * 31)
|
||||
|
||||
def test_invalids(self):
|
||||
self.assertInvalid('_test')
|
||||
self.assertInvalid('Test')
|
||||
self.assertInvalid('hello world')
|
||||
self.assertInvalid('te---st')
|
||||
|
||||
|
||||
class TestGeneratorFile(unittest.TestCase):
|
||||
def sample_generator(self):
|
||||
yield 'this'
|
||||
|
@ -128,6 +161,9 @@ class TestUsernameGenerator(unittest.TestCase):
|
|||
self.assert_generated_output('ja__', 'ja00')
|
||||
self.assert_generated_output('jake__', 'jake')
|
||||
|
||||
def test_starting_underscore(self):
|
||||
self.assert_generated_output('_jake', 'jake')
|
||||
|
||||
def test_short_names(self):
|
||||
self.assert_generated_output('a', 'a000')
|
||||
self.assert_generated_output('ab', 'ab00')
|
||||
|
|
Reference in a new issue