def create_snapshot_with_etags_after_modification(warebox_mock):
    metadata = {}
    metadata['file1.txt'] = {'size': 1, 'lmtime': 2, 'etag': 'WRONG_ETAG_01'}
    metadata['file2.txt'] = {'size': 2, 'lmtime': 1, 'etag': 'WRONG_ETAG_02'}
    pathnames = sorted(metadata.keys())
    snapshot = WareboxSnapshot(pathnames, metadata, warebox_mock)
    snapshot._dont_copy_below_size = 1
    return snapshot
def create_snapshot_with_etags_before_modification():
    metadata = {}
    metadata['file1.txt'] = {'size': 1, 'lmtime': 1, 'etag': 'LAST_ETAG_01'}
    metadata['file2.txt'] = {'size': 2, 'lmtime': 1, 'etag': 'LAST_ETAG_02'}
    pathnames = sorted(metadata.keys())
    snapshot = WareboxSnapshot(pathnames, metadata, None)
    snapshot._dont_copy_below_size = 1
    return snapshot
def create_snapshot_with_hierarchy_before_modification():
    metadata = {}
    metadata['folder1/']          = { 'size': 0, 'lmtime': 0, 'etag': 'ETAG00' }
    metadata['folder1/file.txt']  = { 'size': 2, 'lmtime': 0, 'etag': 'ETAG01' }
    metadata['folder5/']          = { 'size': 0, 'lmtime': 0, 'etag': 'ETAG00' }
    metadata['folder5/file.txt']  = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG05' }
    pathnames = sorted(metadata.keys())
    snapshot = WareboxSnapshot(pathnames, metadata, None)
    snapshot._dont_copy_below_size = 1
    return snapshot
def create_snapshot_before_modification():
    metadata = {}
    metadata['file1.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG01' }
    metadata['file2.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG02' }
    metadata['file3.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG03' }
    metadata['file4.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG0B' }
    metadata['file5.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG04' }
    metadata['file6.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG05' }
    metadata['file7.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG06' }
    metadata['fileC.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG06' }
    pathnames = sorted(metadata.keys())
    snapshot = WareboxSnapshot(pathnames, metadata, None)
    snapshot._dont_copy_below_size = 1
    return snapshot
def create_snapshot_with_hierarchy_after_modification():
    metadata = {}
    metadata['folder1/']          = {'size': 0, 'lmtime': 0, 'etag': 'ETAG00'}  # normal
    metadata['folder1/file.txt']  = {'size': 1, 'lmtime': 0, 'etag': 'ETAG01'}  # normal
    metadata['folder2/']          = {'size': 0, 'lmtime': 0, 'etag': 'ETAG00'}  # new
    metadata['folder2/file.txt']  = {'size': 3, 'lmtime': 0, 'etag': 'ETAG02'}  # new
    metadata['folder3/']          = {'size': 0, 'lmtime': 0, 'etag': 'ETAG00'}  # copied from last
    metadata['folder3/file.txt']  = {'size': 2, 'lmtime': 0, 'etag': 'ETAG01'}  # copied from last
    metadata['folder4/']          = {'size': 0, 'lmtime': 0, 'etag': 'ETAG00'}  # copied from curr
    metadata['folder4/file.txt']  = {'size': 3, 'lmtime': 0, 'etag': 'ETAG02'}  # copied from curr
    # folder5/ deleted
    # folder5/file.txt deleted
    pathnames = sorted(metadata.keys())
    snapshot = WareboxSnapshot(pathnames, metadata, None)
    snapshot._dont_copy_below_size = 1
    return snapshot
def create_snapshot_after_modification():
    metadata = {}
    metadata['file0.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG00' } # new
    metadata['file1.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG01' } # unchanged
    metadata['file2.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG12' } # modified (etag)
    metadata['file3.txt'] = { 'size': 3, 'lmtime': 0, 'etag': 'ETAG13' } # modified (etag+size)
    metadata['file4.txt'] = { 'size': 2, 'lmtime': 0, 'etag': 'ETAG0B' } # modified (size)
    metadata['file5.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG02' } # modified but copyable from "before"
    # file6.txt deleted
    metadata['file7.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG12' } # modified but copyable from "after"
    # fileC.txt deleted
    metadata['file8.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG01' } # new but copyable from "before"
    metadata['file9.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG06' } # renamed
    metadata['fileA.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG12' } # new but copyable from "after"
    metadata['fileB.txt'] = { 'size': 1, 'lmtime': 0, 'etag': 'ETAG00' } # new but copyable from "after"
    pathnames = sorted(metadata.keys())
    snapshot = WareboxSnapshot(pathnames, metadata, None)
    snapshot._dont_copy_below_size = 1
    return snapshot