def test_full_match(): match = match_filename('_07.mp3', r'_(\d+).mp3', '\\1_NeverGonnaGiveYouUp.mp3', full=True) assert match is not None, 'full match should cover everything' assert match.name_to == '07_NeverGonnaGiveYouUp.mp3' match = match_filename('_07.mp3', r'(\d+)', '\\1_NeverGonnaGiveYouUp.mp3', full=True) assert match is None match = match_filename('_07.mp3', r'_(\d+).mp3', '\\1_NeverGonnaGiveYouUp.mp3', full=False) assert match is not None assert match.name_to == '07_NeverGonnaGiveYouUp.mp3' match = match_filename('_07.mp3', r'(\d+)', '\\1_NeverGonnaGiveYouUp.mp3', full=False) assert match is not None, 'non-full match can apply in the middle of string' assert match.name_to == '07_NeverGonnaGiveYouUp.mp3'
def test_numerical_padding_by_prefix(): match = match_filename('42-1', r'(\d+)-(\d*)', '\\P4\\1 - \\P2\\2.mp3') assert match is not None assert match.name_to == '0042 - 01.mp3', 'padding adds leading zeros' match = match_filename('42.m', r'(\d+).m', '\\P2\\1.mp3') assert match is not None assert match.name_to == '42.mp3'
def test_numerical_padding(): match = match_filename('42.mp3', r'(\d+).mp3', '\\1_NeverGonnaGiveYouUp.mp3', padding=3) assert match is not None assert match.name_to == '042_NeverGonnaGiveYouUp.mp3', 'padding adds leading zeros' match = match_filename('42.mp3', r'(\d+).mp3', '\\1_NeverGonnaGiveYouUp.mp3', padding=0) assert match is not None assert match.name_to == '42_NeverGonnaGiveYouUp.mp3'
def test_file_without_none_group_padding(): match = match_filename('1.txt', r'(\d+)(\.XXX)?.txt', '\\1\\2.txt', padding=2) assert match is not None assert match.name_to == '01.txt'
def test_file_with_none_group(): match = match_filename('1.XXX.txt', r'(\d+)(\.XXX)?.txt', '\\1\\2.txt', padding=0) assert match is not None assert match.name_to == '1.XXX.txt'
def test_replace_lowercase(): match = match_filename('ABC-DEF.mp3', r'([A-Z]+)-([A-Z]+).mp3', '\\L\\1-\\2.mp3') assert match is not None assert match.name_to == 'abc-DEF.mp3'
def test_replace_uppercase(): match = match_filename('abc-def.mp3', r'([a-z]+)-([a-z]+).mp3', '\\1-\\U\\2.mp3') assert match is not None assert match.name_to == 'abc-DEF.mp3'
def test_prefix_padding_with_none(): match = match_filename('1.txt', r'(\d+)(XXX)?.txt', '\\1\\P2\\2.txt') assert match is not None assert match.name_to == '1.txt'