def dataunittest_transforms():
    from cellrename_data import CellRenameData, CellRenameItem

    def useFakeData(data, a):
        newdata = [CellRenameItem() for s in a]
        for i in range(len(a)):
            newdata[i].filename = newdata[i].newname = a[i]
        data.data = newdata

    def tostring(data):
        return '|'.join((item.newname for item in data.data))

    testNames1 = 'aa|bb.jpg|cc.Ok.jpg|dd.a'.split('|')
    test1 = CellRenameData('.', '*', False)
    expectEqual(len(test1.data) > 0, True)

    useFakeData(test1, testNames1)
    expectEqual(any((item.filename.endswith('.py') for item in test1.data)),
                False)
    test1.transformSuffixOrPrefix(False, 'suf')
    expectEqual(tostring(test1), 'aasuf|bbsuf.jpg|cc.Oksuf.jpg|ddsuf.a')
    useFakeData(test1, testNames1)
    test1.transformSuffixOrPrefix(True, 'pref')
    expectEqual(tostring(test1), 'prefaa|prefbb.jpg|prefcc.Ok.jpg|prefdd.a')

    useFakeData(test1, testNames1)
    test1.transformAppendNumber('1')
    expectEqual(tostring(test1), 'aa 1|bb 2.jpg|cc.Ok 3.jpg|dd 4.a')
    test1.transformAppendNumber('5')
    expectEqual(tostring(test1), 'aa 1 5|bb 2 6.jpg|cc.Ok 3 7.jpg|dd 4 8.a')
    useFakeData(test1, testNames1)
    test1.transformAppendNumber('000')
    expectEqual(tostring(test1), 'aa 000|bb 001.jpg|cc.Ok 002.jpg|dd 003.a')
    useFakeData(test1, testNames1)
    test1.transformAppendNumber('0098')
    expectEqual(tostring(test1),
                'aa 0098|bb 0099.jpg|cc.Ok 0100.jpg|dd 0101.a')

    useFakeData(test1, testNames1)
    test1.transformWithPattern('s')
    expectEqual(tostring(test1), 's|s.jpg|s.jpg|s.a')
    useFakeData(test1, testNames1)
    test1.transformWithPattern('a%na%n %u%u%f')
    expectEqual(
        tostring(test1),
        'a1a1 aaaaaa|a2a2 bbbbbb.jpg|a3a3 cc.okcc.okcc.Ok.jpg|a4a4 dddddd.a')
    useFakeData(test1, testNames1)
    test1.transformWithPattern('%N(%U)%N')
    expectEqual(tostring(test1), '1(AA)1|2(BB)2.jpg|3(CC.OK)3.jpg|4(DD)4.a')

    useFakeData(test1, testNames1)
    test1.transformReplace('A', 'C')
    test1.transformReplace(
        '.jpg',
        '.png')  # unlike the rest, this *should* be able to rename extensions
    expectEqual(tostring(test1), 'aa|bb.png|cc.Ok.png|dd.a')

    test2 = CellRenameData('.', '*', False)
    testNames2 = 'a(a|test(Athat|first,second|xx,yy,zz|cc.Ok.jpg|ccnOk.jpg|dd.a'.split(
        '|')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace('(a', '_a', False,
                                False)  # not regex, case insensitive
    expectEqual(
        tostring(test2),
        'a_a|test_athat|first,second|xx,yy,zz|cc.Ok.jpg|ccnOk.jpg|dd.a')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace('(a', '_a', False,
                                True)  # not regex, case sensitive
    expectEqual(
        tostring(test2),
        'a_a|test(Athat|first,second|xx,yy,zz|cc.Ok.jpg|ccnOk.jpg|dd.a')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace('cc.Ok', 'match', False,
                                False)  # not regex, case sensitive
    expectEqual(
        tostring(test2),
        'a(a|test(Athat|first,second|xx,yy,zz|match.jpg|ccnOk.jpg|dd.a')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace('cc.Ok', 'match', True,
                                False)  # is regex, case sensitive
    expectEqual(
        tostring(test2),
        'a(a|test(Athat|first,second|xx,yy,zz|match.jpg|match.jpg|dd.a')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace(r'(\w+),(\w+)', r'\2-\1', True,
                                False)  # is regex, case sensitive
    expectEqual(
        tostring(test2),
        'a(a|test(Athat|second-first|yy-xx,zz|cc.Ok.jpg|ccnOk.jpg|dd.a')
Example #2
0
def dataunittest_transforms():
    from cellrename_data import CellRenameData, CellRenameItem
    
    def useFakeData(data, a):
        newdata = [CellRenameItem() for s in a]
        for i in range(len(a)): 
            newdata[i].filename=newdata[i].newname=a[i]
        data.data = newdata
    def tostring(data):
        return '|'.join((item.newname for item in data.data))
    
    testNames1 = 'aa|bb.jpg|cc.Ok.jpg|dd.a'.split('|')
    test1 = CellRenameData('.', '*', False)
    expectEqual( len(test1.data)>0, True)
    
    useFakeData(test1, testNames1)
    expectEqual(any((item.filename.endswith('.py') for item in test1.data)), False)
    test1.transformSuffixOrPrefix(False, 'suf')
    expectEqual( tostring(test1), 'aasuf|bbsuf.jpg|cc.Oksuf.jpg|ddsuf.a')
    useFakeData(test1, testNames1)
    test1.transformSuffixOrPrefix(True, 'pref')
    expectEqual( tostring(test1), 'prefaa|prefbb.jpg|prefcc.Ok.jpg|prefdd.a')
    
    useFakeData(test1, testNames1)
    test1.transformAppendNumber('1')
    expectEqual( tostring(test1), 'aa 1|bb 2.jpg|cc.Ok 3.jpg|dd 4.a')
    test1.transformAppendNumber('5')
    expectEqual( tostring(test1), 'aa 1 5|bb 2 6.jpg|cc.Ok 3 7.jpg|dd 4 8.a')
    useFakeData(test1, testNames1)
    test1.transformAppendNumber('000')
    expectEqual( tostring(test1), 'aa 000|bb 001.jpg|cc.Ok 002.jpg|dd 003.a')
    useFakeData(test1, testNames1)
    test1.transformAppendNumber('0098')
    expectEqual( tostring(test1), 'aa 0098|bb 0099.jpg|cc.Ok 0100.jpg|dd 0101.a')
    
    useFakeData(test1, testNames1)
    test1.transformWithPattern('s')
    expectEqual( tostring(test1), 's|s.jpg|s.jpg|s.a')
    useFakeData(test1, testNames1)
    test1.transformWithPattern('a%na%n %u%u%f')
    expectEqual( tostring(test1), 'a1a1 aaaaaa|a2a2 bbbbbb.jpg|a3a3 cc.okcc.okcc.Ok.jpg|a4a4 dddddd.a')
    useFakeData(test1, testNames1)
    test1.transformWithPattern('%N(%U)%N')
    expectEqual( tostring(test1), '1(AA)1|2(BB)2.jpg|3(CC.OK)3.jpg|4(DD)4.a')
    
    useFakeData(test1, testNames1)
    test1.transformReplace('A','C')
    test1.transformReplace('.jpg','.png') # unlike the rest, this *should* be able to rename extensions
    expectEqual( tostring(test1),'aa|bb.png|cc.Ok.png|dd.a')
    
    test2 = CellRenameData('.', '*', False)
    testNames2 = 'a(a|test(Athat|first,second|xx,yy,zz|cc.Ok.jpg|ccnOk.jpg|dd.a'.split('|')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace('(a', '_a', False, False) # not regex, case insensitive
    expectEqual( tostring(test2), 'a_a|test_athat|first,second|xx,yy,zz|cc.Ok.jpg|ccnOk.jpg|dd.a')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace('(a', '_a', False, True) # not regex, case sensitive
    expectEqual( tostring(test2), 'a_a|test(Athat|first,second|xx,yy,zz|cc.Ok.jpg|ccnOk.jpg|dd.a')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace('cc.Ok', 'match', False, False) # not regex, case sensitive
    expectEqual( tostring(test2), 'a(a|test(Athat|first,second|xx,yy,zz|match.jpg|ccnOk.jpg|dd.a')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace('cc.Ok', 'match', True, False) # is regex, case sensitive
    expectEqual( tostring(test2), 'a(a|test(Athat|first,second|xx,yy,zz|match.jpg|match.jpg|dd.a')
    useFakeData(test2, testNames2)
    test2.transformRegexReplace(r'(\w+),(\w+)', r'\2-\1', True, False) # is regex, case sensitive
    expectEqual( tostring(test2), 'a(a|test(Athat|second-first|yy-xx,zz|cc.Ok.jpg|ccnOk.jpg|dd.a')
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')
Example #4
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')