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)