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_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')