object_id = '/' is invalid
This commit is contained in:
		
					parent
					
						
							
								260303dd14
							
						
					
				
			
			
				commit
				
					
						ca1cc0f64a
					
				
			
		
					 2 changed files with 14 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -21,9 +21,7 @@
 | 
			
		|||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
import fnmatch
 | 
			
		||||
import os
 | 
			
		||||
import collections
 | 
			
		||||
 | 
			
		||||
import cdist
 | 
			
		||||
import cdist.core
 | 
			
		||||
| 
						 | 
				
			
			@ -142,9 +140,13 @@ class CdistObject(object):
 | 
			
		|||
            if '//' in self.object_id:
 | 
			
		||||
                raise IllegalObjectIdError(
 | 
			
		||||
                        self.object_id, 'object_id may not contain //')
 | 
			
		||||
            if self.object_id == '.':
 | 
			
		||||
                raise IllegalObjectIdError(
 | 
			
		||||
                        self.object_id, 'object_id may not be a .')
 | 
			
		||||
 | 
			
		||||
            _invalid_object_ids = ('.', '/', )
 | 
			
		||||
            for ioid in _invalid_object_ids:
 | 
			
		||||
                if self.object_id == ioid:
 | 
			
		||||
                    raise IllegalObjectIdError(
 | 
			
		||||
                        self.object_id,
 | 
			
		||||
                        'object_id may not be a {}'.format(ioid))
 | 
			
		||||
 | 
			
		||||
        # If no object_id and type is not singleton => error out
 | 
			
		||||
        if not self.object_id and not self.cdist_type.is_singleton:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -147,6 +147,13 @@ class ObjectIdTestCase(test.CdistTestCase):
 | 
			
		|||
            core.CdistObject(cdist_type, self.object_base_path,
 | 
			
		||||
                             OBJECT_MARKER_NAME, illegal_object_id)
 | 
			
		||||
 | 
			
		||||
    def test_object_id_equals_slash(self):
 | 
			
		||||
        cdist_type = core.CdistType(type_base_path, '__third')
 | 
			
		||||
        illegal_object_id = '/'
 | 
			
		||||
        with self.assertRaises(core.IllegalObjectIdError):
 | 
			
		||||
            core.CdistObject(cdist_type, self.object_base_path,
 | 
			
		||||
                             OBJECT_MARKER_NAME, illegal_object_id)
 | 
			
		||||
 | 
			
		||||
    def test_object_id_on_singleton_type(self):
 | 
			
		||||
        cdist_type = core.CdistType(type_base_path, '__test_singleton')
 | 
			
		||||
        illegal_object_id = 'object_id'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue