Merge "Add more tests for bucket name validation"
This commit is contained in:
commit
daf6ec8e29
@ -14,6 +14,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
import unittest
|
||||
import mock
|
||||
|
||||
from swift3 import utils
|
||||
|
||||
@ -33,5 +34,54 @@ class TestSwift3Utils(unittest.TestCase):
|
||||
for s1, s2 in strs:
|
||||
self.assertEquals(s1, utils.snake_to_camel(s2))
|
||||
|
||||
def test_validate_bucket_name(self):
|
||||
# good cases
|
||||
self.assertTrue(utils.validate_bucket_name('bucket'))
|
||||
self.assertTrue(utils.validate_bucket_name('bucket1'))
|
||||
self.assertTrue(utils.validate_bucket_name('bucket-1'))
|
||||
self.assertTrue(utils.validate_bucket_name('b.u.c.k.e.t'))
|
||||
self.assertTrue(utils.validate_bucket_name('a' * 63))
|
||||
# bad cases
|
||||
self.assertFalse(utils.validate_bucket_name('a'))
|
||||
self.assertFalse(utils.validate_bucket_name('aa'))
|
||||
self.assertFalse(utils.validate_bucket_name('a+a'))
|
||||
self.assertFalse(utils.validate_bucket_name('a_a'))
|
||||
self.assertFalse(utils.validate_bucket_name('Bucket'))
|
||||
self.assertFalse(utils.validate_bucket_name('BUCKET'))
|
||||
self.assertFalse(utils.validate_bucket_name('bucket-'))
|
||||
self.assertFalse(utils.validate_bucket_name('bucket.'))
|
||||
self.assertFalse(utils.validate_bucket_name('bucket_'))
|
||||
self.assertFalse(utils.validate_bucket_name('bucket.-bucket'))
|
||||
self.assertFalse(utils.validate_bucket_name('bucket-.bucket'))
|
||||
self.assertFalse(utils.validate_bucket_name('bucket..bucket'))
|
||||
self.assertFalse(utils.validate_bucket_name('a' * 64))
|
||||
|
||||
def test_validate_bucket_name_with_dns_compliant_bucket_names_false(self):
|
||||
|
||||
with mock.patch('swift3.utils.CONF.dns_compliant_bucket_names', False):
|
||||
# good cases
|
||||
self.assertTrue(utils.validate_bucket_name('bucket'))
|
||||
self.assertTrue(utils.validate_bucket_name('bucket1'))
|
||||
self.assertTrue(utils.validate_bucket_name('bucket-1'))
|
||||
self.assertTrue(utils.validate_bucket_name('b.u.c.k.e.t'))
|
||||
self.assertTrue(utils.validate_bucket_name('a' * 63))
|
||||
self.assertTrue(utils.validate_bucket_name('a' * 255))
|
||||
self.assertTrue(utils.validate_bucket_name('a_a'))
|
||||
self.assertTrue(utils.validate_bucket_name('Bucket'))
|
||||
self.assertTrue(utils.validate_bucket_name('BUCKET'))
|
||||
self.assertTrue(utils.validate_bucket_name('bucket-'))
|
||||
self.assertTrue(utils.validate_bucket_name('bucket_'))
|
||||
self.assertTrue(utils.validate_bucket_name('bucket.-bucket'))
|
||||
self.assertTrue(utils.validate_bucket_name('bucket-.bucket'))
|
||||
self.assertTrue(utils.validate_bucket_name('bucket..bucket'))
|
||||
# bad cases
|
||||
self.assertFalse(utils.validate_bucket_name('a'))
|
||||
self.assertFalse(utils.validate_bucket_name('aa'))
|
||||
self.assertFalse(utils.validate_bucket_name('a+a'))
|
||||
# ending with dot seems invalid in US standard, too
|
||||
self.assertFalse(utils.validate_bucket_name('bucket.'))
|
||||
self.assertFalse(utils.validate_bucket_name('a' * 256))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
@ -122,6 +122,9 @@ def validate_bucket_name(name):
|
||||
# Bucket names cannot contain two adjacent periods
|
||||
# Bucket names must end with a letter or a number
|
||||
return False
|
||||
elif name.endswith('.'):
|
||||
# Bucket names must not end with dot
|
||||
return False
|
||||
elif re.match("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.)"
|
||||
"{3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
|
||||
name):
|
||||
|
Loading…
x
Reference in New Issue
Block a user