Author: laukpe
Date: Thu Sep 18 04:30:23 2008
New Revision: 756

Modified:
   trunk/atest/testdata/standard_libraries/operating_system/path.html
   trunk/src/robot/libraries/OperatingSystem.py

Log:
better doc and more tests for split_extension (related to previous commit)

Modified: trunk/atest/testdata/standard_libraries/operating_system/path.html
==============================================================================
--- trunk/atest/testdata/standard_libraries/operating_system/path.html (original) +++ trunk/atest/testdata/standard_libraries/operating_system/path.html Thu Sep 18 04:30:23 2008
@@ -4889,7 +4889,8 @@



-    <tr>
+ <tr><td></td><td align="undefined" valign="undefined">Split Extension And +Check</td><td align="undefined" valign="undefined">.abc.ext</td><td>.abc</td><td align="undefined" valign="undefined">ext<br></td><td></td></tr><tr>



@@ -5060,7 +5061,7 @@



-      <td align="undefined" valign="undefined">path${/}abc.ext</td>
+      <td align="undefined" valign="undefined">path/abc.ext</td>



@@ -5134,7 +5135,7 @@


       <td align="undefined" valign="undefined">
-${CURDIR}${/}path${/}abc.ext2</td>
+${CURDIR}/path${/}abc.ext2</td>



@@ -5282,7 +5283,7 @@



-      <td align="undefined" valign="undefined">p1${/}..${/}p2${/}</td>
+      <td align="undefined" valign="undefined">p1${/}..${/}p2${/}/</td>



@@ -5356,7 +5357,7 @@


       <td align="undefined" valign="undefined">
-p1${/}..${/}p2${/}abc.ext</td>
+p1${/}..///////p2${/}abc.ext</td>



@@ -5395,7 +5396,13 @@



- </tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Forward Slash Works as Separator On All OSes</td><td>${path} =</td><td>Join Path</td><td>a/b</td><td>c/d/e</td><td>f/g</td></tr><tr><td></td><td>Should Be Equal</td><td>${path}</td><td>a${/}b${/}c${/}d${/}e${/}f${/}g</td><td></td><td></td></tr><tr><td></td><td>Normalize Path And Check</td><td>foo/bar/../zap</td><td>foo${/}zap</td><td></td><td></td></tr><tr><td></td><td>Split Path And Check</td><td>foo/bar/zap</td><td>foo${/}bar</td><td>zap</td><td></td></tr><tr><td></td><td>Split Extension And Check</td><td>foo/bar/zap.txt</td><td>foo${/}bar${/}zap</td><td>txt</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> + </tr><tr><td></td><td align="undefined" valign="undefined">Split Extension And
+Check</td><td align="undefined" valign="undefined">
+path/.file.ext</td><td align="undefined" valign="undefined">path${/}.file</td><td>ext</td><td></td></tr><tr><td></td><td align="undefined" valign="undefined">Split Extension And
+Check</td><td align="undefined" valign="undefined">
+path/.file</td><td align="undefined" valign="undefined">path${/}.file</td><td>\</td><td></td></tr><tr><td></td><td align="undefined" valign="undefined">Split Extension And
+Check</td><td align="undefined" valign="undefined">
+path/..ext</td><td align="undefined" valign="undefined">path${/}.</td><td>ext</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Forward Slash Works as Separator On All OSes</td><td>${path} =</td><td>Join Path</td><td>a/b</td><td>c/d/e</td><td>f/g</td></tr><tr><td></td><td>Should Be Equal</td><td>${path}</td><td>a${/}b${/}c${/}d${/}e${/}f${/}g</td><td></td><td></td></tr><tr><td></td><td>Normalize Path And Check</td><td>foo/bar/../zap</td><td>foo${/}zap</td><td></td><td></td></tr><tr><td></td><td>Split Path And Check</td><td>foo/bar/zap</td><td>foo${/}bar</td><td>zap</td><td></td></tr><tr><td></td><td>Split Extension And Check</td><td>foo/bar/zap.txt</td><td>foo${/}bar${/}zap</td><td>txt</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>




Modified: trunk/src/robot/libraries/OperatingSystem.py
==============================================================================
--- trunk/src/robot/libraries/OperatingSystem.py        (original)
+++ trunk/src/robot/libraries/OperatingSystem.py        Thu Sep 18 04:30:23 2008
@@ -942,22 +942,32 @@
     def split_extension(self, path):
         """Splits the extension from the given path.

-        The given path is first normalized (e.g. a possible trailing
-        path separator removed, special directories '..' and '.'
-        removed).  The parts that are split are returned as separate
-        components. If the path contains no extension, an empty string
-        is returned for it.
+        The given path is first normalized (e.g. possible trailing
+        path separators removed, special directories '..' and '.'
+        removed). The base path and extension are returned as separate
+        components so that extension separator ('.') is removed. If
+        the path contains no extension, an empty string is returned
+        for it.
+
+        Starting from 2.0.2, files starting with a dot are handled so
+        that the leading dot is always part of the file name. With
+        earlier versions, the last example below would return 'file' as
+        an extension.

         Examples:
         | ${path} | ${ext} = | Split Extension | file.extension    |
         | ${p2}   | ${e2} =  | Split Extension | path/file.ext     |
         | ${p3}   | ${e3} =  | Split Extension | path/file         |
         | ${p4}   | ${e4} =  | Split Extension | p1/../p2/file.ext |
+        | ${p5}   | ${e5} =  | Split Extension | path/.file.ext    |
+        | ${p6}   | ${e6} =  | Split Extension | path/.file        |
         =>
         - ${path} = 'file' & ${ext} = 'extension'
         - ${p2} = 'path/file' & ${e2} = 'ext'
         - ${p3} = 'path/file' & ${e3} = ''
         - ${p4} = 'p2/file' & ${e4} = 'ext'
+        - ${p5} = 'path/.file' & ${e5} = 'ext'
+        - ${p6} = 'path/.file' & ${e6} = ''
         """
         path = self.normalize_path(path)
         basename = os.path.basename(path)

Reply via email to