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:
josephschorr 2016-10-20 13:36:32 -04:00 committed by GitHub
commit 67dde6e154
11 changed files with 126 additions and 21 deletions

View file

@ -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):

View file

@ -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')