commit c001394928e01eb9807c747fed0283c7748578f9 Author: Beck csybeck@gmail.com Date: Tue Jun 26 23:58:32 2012 +0800
Fixed test_expand_path_unix, and added test_expand_path_windows
test_expand_path_unix was changing os.path.sep in order to change the path seperator used by os.path.join. However, this did not work. The path seperator was hardcoded in os.path.join, which is posixpath.join on *unix systems and ntpath.join on windows. We now mock os.path.join to use posixpath.join or ntpath.join in different test cases. --- test/unit/util/system.py | 25 +++++++++++++++++++++---- 1 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/test/unit/util/system.py b/test/unit/util/system.py index 397ba7d..2fee30d 100644 --- a/test/unit/util/system.py +++ b/test/unit/util/system.py @@ -9,6 +9,8 @@ import os import platform import functools import unittest +import ntpath +import posixpath import stem.util.proc import stem.util.system as system import test.mocking as mocking @@ -292,8 +294,7 @@ class TestSystem(unittest.TestCase): """
mocking.mock(platform.system, mocking.return_value("Linux")) - original_path_sep = os.path.sep - os.path.sep = "/" + mocking.mock(os.path.join, posixpath.join, os.path)
self.assertEquals("", system.expand_path("")) self.assertEquals("/tmp", system.expand_path("/tmp")) @@ -303,5 +304,21 @@ class TestSystem(unittest.TestCase): self.assertEquals("/tmp/foo", system.expand_path("foo", "/tmp")) self.assertEquals("/tmp/foo", system.expand_path("./foo", "/tmp"))
- os.path.sep = original_path_sep - + def test_expand_path_windows(self): + """ + Tests the expand_path function on windows. This does not exercise + home directory expansions since that deals with our environment + (that's left to integ tests). + """ + + mocking.mock(platform.system, mocking.return_value("Windows")) + mocking.mock(os.path.join, ntpath.join, os.path) + + self.assertEquals("", system.expand_path("")) + self.assertEquals("C:\tmp", system.expand_path("C:\tmp")) + self.assertEquals("C:\tmp", system.expand_path("C:\tmp\")) + self.assertEquals("C:\tmp", system.expand_path(".", "C:\tmp")) + self.assertEquals("C:\tmp", system.expand_path(".\", "C:\tmp")) + self.assertEquals("C:\tmp\foo", system.expand_path("foo", "C:\tmp")) + self.assertEquals("C:\tmp\foo", system.expand_path(".\foo", "C:\tmp")) + \ No newline at end of file