def setUp(cls):
        cls.conn = Connection(config)
        cls.conn.authenticate()
        cls.account = Account(cls.conn, config.get('account',
                                                   config['username']))
        cls.account.delete_containers()

        cls.file_size = 8

        cls.container = cls.account.container(Utils.create_name())
        if not cls.container.create():
            raise ResponseError(cls.conn.response)

        cls.dirs = [
            'dir1',
            'dir2',
            'dir1/subdir1',
            'dir1/subdir2',
            'dir1/subdir1/subsubdir1',
            'dir1/subdir1/subsubdir2',
            'dir1/subdir with spaces',
            'dir1/subdir+with{whatever',
        ]

        cls.files = [
            'file1',
            'file A',
            'dir1/file2',
            'dir1/subdir1/file2',
            'dir1/subdir1/file3',
            'dir1/subdir1/file4',
            'dir1/subdir1/subsubdir1/file5',
            'dir1/subdir1/subsubdir1/file6',
            'dir1/subdir1/subsubdir1/file7',
            'dir1/subdir1/subsubdir1/file8',
            'dir1/subdir1/subsubdir2/file9',
            'dir1/subdir1/subsubdir2/file0',
            'dir1/subdir with spaces/file B',
            'dir1/subdir+with{whatever/file D',
        ]

        stored_files = set()
        for d in cls.dirs:
            file = cls.container.file(d)
            file.write(hdrs={'Content-Type': 'application/directory'})
        for f in cls.files:
            file = cls.container.file(f)
            file.write_random(cls.file_size, hdrs={'Content-Type':
                                  'application/octet-stream'})
            stored_files.add(f)
        cls.stored_files = sorted(stored_files)
        cls.sorted_objects = sorted(set(cls.dirs + cls.files))
 def setUp(cls):
     cls.conn = Connection(config)
     cls.conn.authenticate()
     cls.account = Account(cls.conn, config.get('account',
                                                config['username']))
     cls.account.delete_containers()
     cls.containers = {}
     #create two containers one for object other for versions of objects
     for i in range(2):
         hdrs={}
         if i==0:
             hdrs={'X-Versions-Location':'versions'}
             cont = cls.containers['object'] = cls.account.container('object')
         else:
             cont = cls.containers['versions'] = cls.account.container('versions')
         if not cont.create(hdrs=hdrs):
             raise ResponseError(cls.conn.response)
             cls.containers.append(cont)
# See the License for the specific language governing permissions and
# limitations under the License.

""" OpenStack Swift based functional tests for Gluster for Swift"""

import random
import os,sys,re,hashlib
from nose import SkipTest

from test.functional.tests import Base, Base2, Utils, \
    TestFileEnv
from test.functional import config, locale
from test.functional.swift_test_client import Account, Connection, File, \
    ResponseError

web_front_end = config.get('web_front_end', 'integral')

class TestFile(Base):
    env = TestFileEnv
    set_up = False

    def testObjectManifest(self):
        if (web_front_end == 'apache2'):
            raise SkipTest()
        data = File.random_data(10000)
        parts = random.randrange(2,10)
        charsEachPart = len(data)/parts
        for i in range(parts+1):
            if i==0 :
                file = self.env.container.file('objectmanifest')
                hdrs={}