Antoine Pitrou avatar Antoine Pitrou committed 3169bf8

Fix suffixes for names starting or ending with a dot.

Comments (0)

Files changed (2)

     @property
     def suffixes(self):
         """A list of the final component's suffixes, if any."""
-        basename = self.name
+        basename = self.name.strip('.')
         if basename == '' or basename == '.':
             return []
         return ['.' + suffix for suffix in basename.split('.')[1:]]
         self.assertEqual(P('/a/b/.').suffixes, [])
         self.assertEqual(P('a/b.py').suffixes, ['.py'])
         self.assertEqual(P('/a/b.py').suffixes, ['.py'])
+        self.assertEqual(P('a/.hgrc').suffixes, [])
+        self.assertEqual(P('/a/.hgrc').suffixes, [])
+        self.assertEqual(P('a/.hg.rc').suffixes, ['.rc'])
+        self.assertEqual(P('/a/.hg.rc').suffixes, ['.rc'])
         self.assertEqual(P('a/b.tar.gz').suffixes, ['.tar', '.gz'])
         self.assertEqual(P('/a/b.tar.gz').suffixes, ['.tar', '.gz'])
+        self.assertEqual(P('a/Some name ending with a dot.').suffixes, [])
+        self.assertEqual(P('/a/Some name ending with a dot.').suffixes, [])
 
     def test_relative_common(self):
         P = self.cls
         self.assertEqual(P('c:/a/b').suffixes, [])
         self.assertEqual(P('c:a/b.py').suffixes, ['.py'])
         self.assertEqual(P('c:/a/b.py').suffixes, ['.py'])
+        self.assertEqual(P('c:a/.hgrc').suffixes, [])
+        self.assertEqual(P('c:/a/.hgrc').suffixes, [])
+        self.assertEqual(P('c:a/.hg.rc').suffixes, ['.rc'])
+        self.assertEqual(P('c:/a/.hg.rc').suffixes, ['.rc'])
         self.assertEqual(P('c:a/b.tar.gz').suffixes, ['.tar', '.gz'])
         self.assertEqual(P('c:/a/b.tar.gz').suffixes, ['.tar', '.gz'])
         self.assertEqual(P('//My.py/Share.php').suffixes, [])
         self.assertEqual(P('//My.py/Share.php/a/b').suffixes, [])
+        self.assertEqual(P('c:a/Some name ending with a dot.').suffixes, [])
+        self.assertEqual(P('c:/a/Some name ending with a dot.').suffixes, [])
 
     def test_relative(self):
         P = self.cls
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.