+ def test_quote_filepath(self):
+ foo_bar_fp = FilePath(win32_other(u'C:\\foo\\bar', u'/foo/bar'))
+ self.failUnlessReallyEqual(quote_filepath(foo_bar_fp),
+ win32_other("'C:\\foo\\bar'", "'/foo/bar'"))
+ self.failUnlessReallyEqual(quote_filepath(foo_bar_fp, quotemarks=True),
+ win32_other("'C:\\foo\\bar'", "'/foo/bar'"))
+ self.failUnlessReallyEqual(quote_filepath(foo_bar_fp, quotemarks=False),
+ win32_other("C:\\foo\\bar", "/foo/bar"))
+
+
+class FilePaths(ReallyEqualMixin, unittest.TestCase):
+ def test_to_filepath(self):
+ foo_u = win32_other(u'C:\\foo', u'/foo')
+
+ nosep_fp = to_filepath(foo_u)
+ sep_fp = to_filepath(foo_u + os.path.sep)
+
+ for fp in (nosep_fp, sep_fp):
+ self.failUnlessReallyEqual(fp, FilePath(foo_u))
+ self.failUnlessReallyEqual(fp.path, foo_u)
+
+ if sys.platform == "win32":
+ long_u = u'\\\\?\\C:\\foo'
+ longfp = to_filepath(long_u + u'\\')
+ self.failUnlessReallyEqual(longfp, FilePath(long_u))
+ self.failUnlessReallyEqual(longfp.path, long_u)
+
+ def test_extend_filepath(self):
+ foo_bfp = FilePath(win32_other(b'C:\\foo', b'/foo'))
+ foo_ufp = FilePath(win32_other(u'C:\\foo', u'/foo'))
+ foo_bar_baz_u = win32_other(u'C:\\foo\\bar\\baz', u'/foo/bar/baz')
+
+ for foo_fp in (foo_bfp, foo_ufp):
+ fp = extend_filepath(foo_fp, [u'bar', u'baz'])
+ self.failUnlessReallyEqual(fp, FilePath(foo_bar_baz_u))
+ self.failUnlessReallyEqual(fp.path, foo_bar_baz_u)
+
+ def test_unicode_from_filepath(self):
+ foo_bfp = FilePath(win32_other(b'C:\\foo', b'/foo'))
+ foo_ufp = FilePath(win32_other(u'C:\\foo', u'/foo'))
+ foo_u = win32_other(u'C:\\foo', u'/foo')
+
+ for foo_fp in (foo_bfp, foo_ufp):
+ self.failUnlessReallyEqual(unicode_from_filepath(foo_fp), foo_u)
+
+ def test_unicode_segments_from(self):
+ foo_bfp = FilePath(win32_other(b'C:\\foo', b'/foo'))
+ foo_ufp = FilePath(win32_other(u'C:\\foo', u'/foo'))
+ foo_bar_baz_bfp = FilePath(win32_other(b'C:\\foo\\bar\\baz', b'/foo/bar/baz'))
+ foo_bar_baz_ufp = FilePath(win32_other(u'C:\\foo\\bar\\baz', u'/foo/bar/baz'))
+
+ for foo_fp in (foo_bfp, foo_ufp):
+ for foo_bar_baz_fp in (foo_bar_baz_bfp, foo_bar_baz_ufp):
+ self.failUnlessReallyEqual(unicode_segments_from(foo_bar_baz_fp, foo_fp),
+ [u'bar', u'baz'])
+