##// END OF EJS Templates
windows: add win32com.shell to demandimport ignore list...
windows: add win32com.shell to demandimport ignore list Module 'appdirs' tries to import win32com.shell (and catch ImportError as an indication of failure) to check whether some further functionality should be implemented one or another way [1]. Of course, demandimport lets it down, so if we want appdirs to work we have to add it to demandimport's ignore list. The reason we want appdirs to work is becuase it is used by setuptools [2] to determine egg cache location. Only fairly recent versions of setuptools depend on this so people don't see this often. [1] https://github.com/ActiveState/appdirs/blob/master/appdirs.py#L560 [2] https://github.com/pypa/setuptools/blob/aae0a928119d2a178882c32bded02270e30d0273/pkg_resources/__init__.py#L1369

File last commit:

r30559:d83ca854 default
r31990:3e03a4b9 default
Show More
test-symlink-os-yes-fs-no.py
57 lines | 1.3 KiB | text/x-python | PythonLexer
/ tests / test-symlink-os-yes-fs-no.py
Pulkit Goyal
tests: make test-symlink-os-yes-fs-no use absolute_import
r28916 from __future__ import absolute_import
import os
import sys
import time
from mercurial import (
commands,
hg,
ui as uimod,
util,
)
Dov Feldstern
test symlinks on symlink-capable os but non-capable filesystem (issue1149)...
r6879
TESTDIR = os.environ["TESTDIR"]
Nicolas Dumazet
tests: move test bundles in a bundles/ subdirectory
r14116 BUNDLEPATH = os.path.join(TESTDIR, 'bundles', 'test-no-symlinks.hg')
Dov Feldstern
test symlinks on symlink-capable os but non-capable filesystem (issue1149)...
r6879
# only makes sense to test on os which supports symlinks
Augie Fackler
tests: use getattr instead of hasattr
r14971 if not getattr(os, "symlink", False):
Dov Feldstern
test symlinks on symlink-capable os but non-capable filesystem (issue1149)...
r6879 sys.exit(80) # SKIPPED_STATUS defined in run-tests.py
Yuya Nishihara
ui: factor out ui.load() to create a ui without loading configs (API)...
r30559 u = uimod.ui.load()
Mads Kiilerich
tests: add missing no-outer-repo requirements...
r17015 # hide outer repo
hg.peer(u, {}, '.', create=True)
Martin Geisler
dirstate: ignore symlinks when fs cannot handle them (issue1888)...
r11769 # clone with symlink support
Peter Arrenbrecht
hg: add opts argument to clone for internal remoteui
r14553 hg.clone(u, {}, BUNDLEPATH, 'test0')
Martin Geisler
dirstate: ignore symlinks when fs cannot handle them (issue1888)...
r11769
repo = hg.repository(u, 'test0')
# wait a bit, or the status call wont update the dirstate
time.sleep(1)
commands.status(u, repo)
# now disable symlink support -- this is what os.symlink would do on a
# non-symlink file system
Dov Feldstern
test symlinks on symlink-capable os but non-capable filesystem (issue1149)...
r6879 def symlink_failure(src, dst):
Augie Fackler
test-symlink-os-yes-fs-no.py: clean up use of two-argument raise...
r18178 raise OSError(1, "Operation not permitted")
Dov Feldstern
test symlinks on symlink-capable os but non-capable filesystem (issue1149)...
r6879 os.symlink = symlink_failure
Mads Kiilerich
posix: give checklink a fast path that cache the check file and is read only...
r30448 def islink_failure(path):
return False
os.path.islink = islink_failure
Dov Feldstern
test symlinks on symlink-capable os but non-capable filesystem (issue1149)...
r6879
Martin Geisler
dirstate: ignore symlinks when fs cannot handle them (issue1888)...
r11769 # dereference links as if a Samba server has exported this to a
# Windows client
for f in 'test0/a.lnk', 'test0/d/b.lnk':
os.unlink(f)
fp = open(f, 'wb')
Dan Villiom Podlaski Christiansen
prevent transient leaks of file handle by using new helper functions...
r14168 fp.write(util.readfile(f[:-4]))
Martin Geisler
dirstate: ignore symlinks when fs cannot handle them (issue1888)...
r11769 fp.close()
# reload repository
Yuya Nishihara
ui: factor out ui.load() to create a ui without loading configs (API)...
r30559 u = uimod.ui.load()
Martin Geisler
dirstate: ignore symlinks when fs cannot handle them (issue1888)...
r11769 repo = hg.repository(u, 'test0')
commands.status(u, repo)
# try cloning a repo which contains symlinks
Yuya Nishihara
ui: factor out ui.load() to create a ui without loading configs (API)...
r30559 u = uimod.ui.load()
Peter Arrenbrecht
hg: add opts argument to clone for internal remoteui
r14553 hg.clone(u, {}, BUNDLEPATH, 'test1')