From 122a59cbb671bb7b3ebaeb0374577301f38656eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Sun, 9 Sep 2018 00:54:36 +0200 Subject: [PATCH] Fix directories not normalised when trailing slash is present --- normalisename.py | 8 ++++++++ test.py | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/normalisename.py b/normalisename.py index d6075a1..a53d681 100755 --- a/normalisename.py +++ b/normalisename.py @@ -46,13 +46,21 @@ class Normalisename: return [self.normalise(path) for path in paths] def normalise(self, path): + path = self.strip_trailing_slash(path) directory = dirname(path) filename = basename(path) normalpath = joinpath(directory, self.normalname(filename)) + if path != normalpath: self.operation(path, normalpath) # pylint: disable=not-callable return normalpath + @staticmethod + def strip_trailing_slash(path): + if path[-1] == '/': + path = path[:-1] + return path + def normalname(self, filename): return unidecode( ''.join( diff --git a/test.py b/test.py index 73dde3a..a82ae4f 100644 --- a/test.py +++ b/test.py @@ -50,4 +50,5 @@ def test_dirname_is_not_changed(normalise, path): def test_name_with_trailing_slash_is_normalised(normalise): - assert False + path = '/home/user/Desktop/cat directory/' + assert normalise(path) == f'/home/user/Desktop/cat{SEP}directory'