def test_replace_symlink(self): if not self.symlink_supported: return source = self.tmppath('source') dest = self.tmppath('dest') os.symlink(self.tmppath('bad'), dest) self.assertTrue(os.path.islink(dest)) s = AbsoluteSymlinkFile(source) self.assertTrue(s.copy(dest)) self.assertTrue(os.path.islink(dest)) link = os.readlink(dest) self.assertEqual(link, source)
def test_symlink_file(self): source = self.tmppath("test_path") with open(source, "wt") as fh: fh.write("Hello world") s = AbsoluteSymlinkFile(source) dest = self.tmppath("symlink") self.assertTrue(s.copy(dest)) if self.symlink_supported: self.assertTrue(os.path.islink(dest)) link = os.readlink(dest) self.assertEqual(link, source) else: self.assertTrue(os.path.isfile(dest)) content = open(dest).read() self.assertEqual(content, "Hello world")
def test_noop(self): if not hasattr(os, "symlink"): return source = self.tmppath("source") dest = self.tmppath("dest") with open(source, "a"): pass os.symlink(source, dest) link = os.readlink(dest) self.assertEqual(link, source) s = AbsoluteSymlinkFile(source) self.assertFalse(s.copy(dest)) link = os.readlink(dest) self.assertEqual(link, source)
def test_replace_symlink(self): if not self.symlink_supported: return source = self.tmppath("source") with open(source, "a"): pass dest = self.tmppath("dest") os.symlink(self.tmppath("bad"), dest) self.assertTrue(os.path.islink(dest)) s = AbsoluteSymlinkFile(source) self.assertTrue(s.copy(dest)) self.assertTrue(os.path.islink(dest)) link = os.readlink(dest) self.assertEqual(link, source)
def test_noop(self): if not hasattr(os, 'symlink'): return source = self.tmppath('source') dest = self.tmppath('dest') with open(source, 'a'): pass os.symlink(source, dest) link = os.readlink(dest) self.assertEqual(link, source) s = AbsoluteSymlinkFile(source) self.assertFalse(s.copy(dest)) link = os.readlink(dest) self.assertEqual(link, source)
def test_replace_file_with_symlink(self): # If symlinks are supported, an existing file should be replaced by a # symlink. source = self.tmppath("test_path") with open(source, "wt") as fh: fh.write("source") dest = self.tmppath("dest") with open(dest, "a"): pass s = AbsoluteSymlinkFile(source) s.copy(dest, skip_if_older=False) if self.symlink_supported: self.assertTrue(os.path.islink(dest)) link = os.readlink(dest) self.assertEqual(link, source) else: self.assertTrue(os.path.isfile(dest)) content = open(dest).read() self.assertEqual(content, "source")
def test_absolute_relative(self): AbsoluteSymlinkFile("/foo") with self.assertRaisesRegexp(ValueError, "Symlink target not absolute"): AbsoluteSymlinkFile("./foo")
def test_absolute_relative(self): AbsoluteSymlinkFile('/foo') with self.assertRaisesRegexp(ValueError, 'Symlink target not absolute'): AbsoluteSymlinkFile('./foo')