You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
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'
|