Better handling of namespace validation to fix a number of issues
- Fixes a bug which allows for underscores at the beginning of namespaces: Fixes #1849 - Allows dots and dashes for newer Docker clients: Fixes #1188 - Has the UI display better messaging associated with namespace entry
This commit is contained in:
parent
efbbeeb07f
commit
3a68740ff7
11 changed files with 126 additions and 21 deletions
|
@ -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