def dataunittest_files():
    from cellrename_data import CellRenameData
    names = unittestsetup()

    def containsName(data, name):
        return any((item.filename == name for item in data.data))

    os.mkdir(os.path.join(dir, 'directory1'))
    os.mkdir(os.path.join(dir, 'directory.jpg'))
    os.mkdir(os.path.join(dir, '.hiddendirectory'))
    test1 = CellRenameData(dir, '*', True)
    expectEqual(len(test1.data),
                len(names) + 3 - 2)  # 2 begin with . and shouldn't be included
    expectEqual(containsName(test1, 'directory1'), True)
    expectEqual(containsName(test1, 'directory.jpg'), True)
    expectEqual(containsName(test1, '1'), True)
    expectEqual(containsName(test1, 'a picture.JPG'), True)
    expectEqual(containsName(test1, '.hiddendirectory'), False)
    expectEqual(containsName(test1, '.testhidden'), False)
    expectEqual(any((item.filename.startswith('.') for item in test1.data)),
                False)

    test2 = CellRenameData(dir, '*', False)
    expectEqual(containsName(test2, 'directory1'), False)
    expectEqual(containsName(test2, 'directory.jpg'), False)
    expectEqual(containsName(test2, '.testhidden'), False)
    expectEqual(containsName(test2, '.hiddendirectory'), False)
    expectEqual(containsName(test2, '1'), True)

    testFilter1 = CellRenameData(dir, '*.*', False)
    expectEqual(containsName(testFilter1, '1'), False)
    expectEqual(containsName(testFilter1, 'a picture.JPG'), True)
    expectEqual(containsName(testFilter1, '2.gif'), True)
    expectEqual(containsName(testFilter1, 'directory.jpg'), False)

    testFilter2 = CellRenameData(dir, '*.jp', False)
    expectEqual(containsName(testFilter2, 'a picture.JPG'), False)
    expectEqual(len(testFilter2.data), 0)

    # even on posix systems we want case-insensitive pattern matching.
    testFilter3 = CellRenameData(dir, '*.jpg', False)
    testFilter4 = CellRenameData(dir, '*.JpG', False)
    testFilter5 = CellRenameData(dir, '*.jp*', False)
    testFilter6 = CellRenameData(dir, '*.jp?', False)
    for filter in (testFilter3, testFilter4, testFilter5, testFilter6):
        expectEqual(containsName(filter, 'a picture.JPG'), True)
        expectEqual(containsName(filter, 'picture 2.jpg'), True)
        expectEqual(containsName(filter, 'picture and picture.jpG'), True)
        expectEqual(containsName(filter, 'the PiCture with caps.jpg'), True)
        expectEqual(containsName(filter, 'directory.jpg'), False)

    # test sorting
    testSort1 = CellRenameData(dir, '*', True)
    testSort1.sort('filename')
    expectEqual(testSort1.data[0].filename, '1')
    expectEqual(testSort1.data[1].filename, '2.gif')
    expectEqual(testSort1.data[-1].filename, 'the PiCture with caps.jpg')
    testSort1.sort('filename', True)  # reverse order
    expectEqual(testSort1.data[-1].filename, '1')
    expectEqual(testSort1.data[-2].filename, '2.gif')
    expectEqual(testSort1.data[0].filename, 'the PiCture with caps.jpg')

    fout = open(join(dir, 'a picture.JPG'), 'w')
    fout.write('a')
    fout.close()
    testSort1.refresh()
    testSort1.sort('size')
    expectEqual(testSort1.data[0].filename in ('directory1', 'directory.jpg'),
                True)  # directories always at top
    expectEqual(testSort1.data[1].filename in ('directory1', 'directory.jpg'),
                True)  # directories always at top
    expectEqual(testSort1.data[2].filename, 'a picture.JPG')
Beispiel #2
0
def dataunittest_files():
    from cellrename_data import CellRenameData
    names = unittestsetup()
    
    def containsName(data, name):
        return any((item.filename==name for item in data.data))
    
    os.mkdir(os.path.join(dir, 'directory1'))
    os.mkdir(os.path.join(dir, 'directory.jpg'))
    os.mkdir(os.path.join(dir, '.hiddendirectory'))
    test1 = CellRenameData(dir, '*', True)
    expectEqual( len(test1.data), len(names)+3-2) # 2 begin with . and shouldn't be included
    expectEqual( containsName(test1, 'directory1'), True)
    expectEqual( containsName(test1, 'directory.jpg'), True)
    expectEqual( containsName(test1, '1'), True)
    expectEqual( containsName(test1, 'a picture.JPG'), True)
    expectEqual( containsName(test1, '.hiddendirectory'), False)
    expectEqual( containsName(test1, '.testhidden'), False)
    expectEqual(any((item.filename.startswith('.') for item in test1.data)), False)
    
    test2 = CellRenameData(dir, '*', False)
    expectEqual( containsName(test2, 'directory1'), False)
    expectEqual( containsName(test2, 'directory.jpg'), False)
    expectEqual( containsName(test2, '.testhidden'), False)
    expectEqual( containsName(test2, '.hiddendirectory'), False)
    expectEqual( containsName(test2, '1'), True)
    
    testFilter1 = CellRenameData(dir, '*.*', False)
    expectEqual( containsName(testFilter1, '1'), False)
    expectEqual( containsName(testFilter1, 'a picture.JPG'), True)
    expectEqual( containsName(testFilter1, '2.gif'), True)
    expectEqual( containsName(testFilter1, 'directory.jpg'), False)
    
    testFilter2 = CellRenameData(dir, '*.jp', False)
    expectEqual( containsName(testFilter2, 'a picture.JPG'), False)
    expectEqual( len(testFilter2.data), 0)
    
    # even on posix systems we want case-insensitive pattern matching.
    testFilter3 = CellRenameData(dir, '*.jpg', False)
    testFilter4 = CellRenameData(dir, '*.JpG', False)
    testFilter5 = CellRenameData(dir, '*.jp*', False)
    testFilter6 = CellRenameData(dir, '*.jp?', False)
    for filter in (testFilter3, testFilter4, testFilter5, testFilter6):
        expectEqual( containsName(filter, 'a picture.JPG'), True)
        expectEqual( containsName(filter, 'picture 2.jpg'), True)
        expectEqual( containsName(filter, 'picture and picture.jpG'), True)
        expectEqual( containsName(filter, 'the PiCture with caps.jpg'), True)
        expectEqual( containsName(filter, 'directory.jpg'), False)
    
    # test sorting
    testSort1 = CellRenameData(dir, '*', True)
    testSort1.sort('filename')
    expectEqual( testSort1.data[0].filename , '1')
    expectEqual( testSort1.data[1].filename , '2.gif')
    expectEqual( testSort1.data[-1].filename , 'the PiCture with caps.jpg')
    testSort1.sort('filename',True) # reverse order
    expectEqual( testSort1.data[-1].filename , '1')
    expectEqual( testSort1.data[-2].filename , '2.gif')
    expectEqual( testSort1.data[0].filename , 'the PiCture with caps.jpg')
    
    fout=open(join(dir, 'a picture.JPG'),'w'); fout.write('a'); fout.close()
    testSort1.refresh()
    testSort1.sort('size')
    expectEqual( testSort1.data[0].filename in ('directory1', 'directory.jpg'), True) # directories always at top
    expectEqual( testSort1.data[1].filename in ('directory1', 'directory.jpg'), True) # directories always at top
    expectEqual( testSort1.data[2].filename , 'a picture.JPG')