class TestPathMapper(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self); self._var_root = ""; self._var_cygwin_p = sys.platform.startswith("cygwin"); self.obj = PathMapper(self._var_root, self._var_cygwin_p); def test__init__(self): self.assertTrue(isinstance(self.obj, PathMapper)); self.assertEqual(self._var_root, self.obj.getRoot()); def testAddMapping(self): mount = ( "C:/cygwin/bin on /usr/bin type ntfs (binary,auto){LF}" "C:/cygwin/lib on /usr/lib type ntfs (binary,auto){LF}" "C:/cygwin on / type ntfs (binary,auto){LF}" "C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto){LF}" "".format(LF="\n") ); f = TemporaryFile(mode='w+'); f.writelines(mount); f.seek(0); mtab = f.readlines(); f.close(); mapping = { '/usr/bin/': "C:/cygwin/bin/", '/usr/lib/': "C:/cygwin/lib/", '/cygdrive/c/': "C:/", }; self.obj._addMapping(mtab); self.assertEqual(self.obj.getMap(), mapping); self.assertEqual(self.obj.getMountRoot(), "C:/cygwin/"); def testMapPath(self): if self._var_cygwin_p: self.assertEqual(self.obj.mapPath("/usr/bin/"), "/usr/bin/"); return; mapping = { '/usr/bin/': 'C:/cygwin/bin/', '/usr/lib/': 'C:/cygwin/lib/', '/cygdrive/c/': 'C:/', }; self.obj.setMap(mapping); for cyg in list(mapping.keys()): self.assertEqual(self.obj.mapPath(cyg), mapping[cyg]);