Mercurial > hg
changeset 6879:24fd94ed1cc0
test symlinks on symlink-capable os but non-capable filesystem (issue1149)
The "real" way to test this is to mount a non-symlink-capable filesystem, and
try working on it; however, I don't know how to mount filesystems as a
non-priveleged user from within the testing framework. So instead, os.symlink
is overridden to raise the exception that would be raised on such a filesystem.
author | Dov Feldstern <dfeldstern@fastimap.com> |
---|---|
date | Thu, 31 Jul 2008 22:41:19 +0300 |
parents | 202d178ec706 |
children | 892806b3fc0f |
files | tests/test-symlink-os-yes-fs-no.py tests/test-symlink-os-yes-fs-no.py.out |
diffstat | 2 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-symlink-os-yes-fs-no.py Thu Jul 31 22:41:19 2008 +0300 @@ -0,0 +1,17 @@ +import os, sys +from mercurial import hg, ui + +TESTDIR = os.environ["TESTDIR"] + +# only makes sense to test on os which supports symlinks +if not hasattr(os, "symlink"): + sys.exit(80) # SKIPPED_STATUS defined in run-tests.py + +# this is what symlink would do on a non-symlink file system +def symlink_failure(src, dst): + raise OSError, (1, "Operation not permitted") +os.symlink = symlink_failure + +# now try cloning a repo which contains symlinks +u = ui.ui() +hg.clone(u, os.path.join(TESTDIR, 'test-no-symlinks.hg'), 'test1')
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-symlink-os-yes-fs-no.py.out Thu Jul 31 22:41:19 2008 +0300 @@ -0,0 +1,7 @@ +requesting all changes +adding changesets +adding manifests +adding file changes +added 1 changesets with 4 changes to 4 files +updating working directory +4 files updated, 0 files merged, 0 files removed, 0 files unresolved