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')
Beispiel #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')