diff options
Diffstat (limited to 'test/unit')
| -rw-r--r-- | test/unit/common/test_constraints.py | 96 | 
1 files changed, 96 insertions, 0 deletions
diff --git a/test/unit/common/test_constraints.py b/test/unit/common/test_constraints.py new file mode 100644 index 0000000..a6d21d8 --- /dev/null +++ b/test/unit/common/test_constraints.py @@ -0,0 +1,96 @@ +# Copyright (c) 2013 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +#    http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import unittest +import swift.common.constraints +from nose import SkipTest +from mock import patch +from gluster.swift.common import constraints as cnt + + +def mock_glusterfs_mount(*args, **kwargs): +    return True + + +def mock_constraints_conf_int(*args, **kwargs): +    return 1000 + + +def mock_check_object_creation(*args, **kwargs): +    return None + + +def mock_check_mount(*args, **kwargs): +    return True + + +def mock_check_mount_err(*args, **kwargs): +    return False + + +class TestUtils(unittest.TestCase): +    """ Tests for common.constraints """ + +    def tearDown(self): +        cnt.set_object_name_component_length() + +    def test_set_object_name_component_length(self): +        len = cnt.get_object_name_component_length() +        cnt.set_object_name_component_length(len+1) +        self.assertEqual(len, cnt.get_object_name_component_length()-1) + +        if hasattr(swift.common.constraints, 'constraints_conf_int'): +            len = swift.common.constraints.constraints_conf_int( +                'max_object_name_component_length', 255) +            cnt.set_object_name_component_length() +            self.assertEqual(len, cnt.get_object_name_component_length()) + +        with patch('swift.common.constraints.constraints_conf_int', +                   mock_constraints_conf_int): +            cnt.set_object_name_component_length() +            self.assertEqual(cnt.get_object_name_component_length(), 1000) + +    def test_validate_obj_name_component(self): +        max_obj_len = cnt.get_object_name_component_length() +        self.assertFalse(cnt.validate_obj_name_component('tests'*(max_obj_len/5))) +        cnt.set_object_name_component_length(300) +        self.assertFalse(cnt.validate_obj_name_component('tests'*60)) + +    def test_validate_obj_name_component_err(self): +        max_obj_len = cnt.get_object_name_component_length() +        self.assertTrue(cnt.validate_obj_name_component('tests'*(max_obj_len/5+1))) +        self.assertTrue(cnt.validate_obj_name_component('.')) +        self.assertTrue(cnt.validate_obj_name_component('..')) + +    def test_gluster_check_object_creation(self): +        with patch('gluster.swift.common.constraints.__check_object_creation', +                   mock_check_object_creation): +            self.assertFalse(cnt.gluster_check_object_creation(None, 'dir/z')) + +    def test_gluster_check_object_creation_err(self): +        with patch('gluster.swift.common.constraints.__check_object_creation', +                   mock_check_object_creation): +            self.assertTrue(cnt.gluster_check_object_creation(None, 'dir/.')) + +    def test_gluster_check_mount(self): +        with patch('gluster.swift.common.constraints.__check_mount', +                   mock_check_mount): +            self.assertTrue(cnt.gluster_check_mount('/tmp/drive', 'vol0')) + +        with patch('gluster.swift.common.constraints.__check_mount', +                   mock_check_mount_err): +            with patch('gluster.swift.common.Glusterfs.mount', +                       mock_glusterfs_mount): +                self.assertTrue(cnt.gluster_check_mount('/tmp/drive', 'vol0'))  | 
