from string import punctuation, whitespace from os.path import dirname import pytest from normalisename import Normalisename # pylint: disable=redefined-outer-name SEP = '_' WHLI = {'.', '-'} OP = None @pytest.fixture def normalise(): return Normalisename(SEP, WHLI, OP) @pytest.mark.parametrize( 'before, after', [ ( f'this{ws}is{ws}{ws}a{ws}cat', f'this{SEP}is{SEP}a{SEP}cat' ) for ws in whitespace ] ) def test_replace_whitespaces_with_separator(normalise, before, after): assert normalise(before) == after def test_remove_funky_characters(normalise): assert normalise(''.join(set(punctuation).difference(WHLI.union({SEP, '/'})))) == '' def test_remove_accent_from_letters(normalise): assert normalise('éáűöüóőú') == 'eauouoou' @pytest.mark.parametrize( 'path', [ '/home/user/Desktop/cica sajt', '/Users/cat/big\tcheese', '/etc/nginx/sites-enabled/cat.conf' '/root/what/big celebration.txt' ] ) def test_dirname_is_not_changed(normalise, path): assert dirname(normalise(path)) == dirname(path) def test_name_with_trailing_slash_is_normalised(normalise): path = '/home/user/Desktop/cat directory/' assert normalise(path) == f'/home/user/Desktop/cat{SEP}directory'