summaryrefslogtreecommitdiffstats
path: root/tests/test_project.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_project.py')
-rw-r--r--tests/test_project.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/test_project.py b/tests/test_project.py
index 6d82da11..dc41f4c0 100644
--- a/tests/test_project.py
+++ b/tests/test_project.py
@@ -314,6 +314,14 @@ class LinkFile(CopyLinkTestCase):
314 lf._Link() 314 lf._Link()
315 self.assertExists(os.path.join(self.topdir, 'foo')) 315 self.assertExists(os.path.join(self.topdir, 'foo'))
316 316
317 def test_src_self(self):
318 """Link to the project itself."""
319 dest = os.path.join(self.topdir, 'foo', 'bar')
320 lf = self.LinkFile('.', 'foo/bar')
321 lf._Link()
322 self.assertExists(dest)
323 self.assertEqual('../git-project', os.readlink(dest))
324
317 def test_dest_subdir(self): 325 def test_dest_subdir(self):
318 """Link a file to a subdir of a checkout.""" 326 """Link a file to a subdir of a checkout."""
319 src = os.path.join(self.worktree, 'foo.txt') 327 src = os.path.join(self.worktree, 'foo.txt')
@@ -323,6 +331,21 @@ class LinkFile(CopyLinkTestCase):
323 lf._Link() 331 lf._Link()
324 self.assertExists(os.path.join(self.topdir, 'sub', 'dir', 'foo', 'bar')) 332 self.assertExists(os.path.join(self.topdir, 'sub', 'dir', 'foo', 'bar'))
325 333
334 def test_src_block_relative(self):
335 """Do not allow relative symlinks."""
336 BAD_SOURCES = (
337 './',
338 '..',
339 '../',
340 'foo/.',
341 'foo/./bar',
342 'foo/..',
343 'foo/../foo',
344 )
345 for src in BAD_SOURCES:
346 lf = self.LinkFile(src, 'foo')
347 self.assertRaises(error.ManifestInvalidPathError, lf._Link)
348
326 def test_update(self): 349 def test_update(self):
327 """Make sure changed targets get updated.""" 350 """Make sure changed targets get updated."""
328 dest = os.path.join(self.topdir, 'sym') 351 dest = os.path.join(self.topdir, 'sym')