summaryrefslogtreecommitdiff
path: root/tests/test-filecache.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-filecache.py')
-rw-r--r--tests/test-filecache.py95
1 files changed, 0 insertions, 95 deletions
diff --git a/tests/test-filecache.py b/tests/test-filecache.py
deleted file mode 100644
index 552a62a..0000000
--- a/tests/test-filecache.py
+++ /dev/null
@@ -1,95 +0,0 @@
-import sys, os, subprocess
-
-if subprocess.call(['python', '%s/hghave' % os.environ['TESTDIR'],
- 'cacheable']):
- sys.exit(80)
-
-from mercurial import util, scmutil, extensions
-
-filecache = scmutil.filecache
-
-class fakerepo(object):
- def __init__(self):
- self._filecache = {}
-
- def join(self, p):
- return p
-
- def sjoin(self, p):
- return p
-
- @filecache('x')
- def cached(self):
- print 'creating'
-
- def invalidate(self):
- for k in self._filecache:
- try:
- delattr(self, k)
- except AttributeError:
- pass
-
-def basic(repo):
- # file doesn't exist, calls function
- repo.cached
-
- repo.invalidate()
- # file still doesn't exist, uses cache
- repo.cached
-
- # create empty file
- f = open('x', 'w')
- f.close()
- repo.invalidate()
- # should recreate the object
- repo.cached
-
- f = open('x', 'w')
- f.write('a')
- f.close()
- repo.invalidate()
- # should recreate the object
- repo.cached
-
- repo.invalidate()
- # stats file again, nothing changed, reuses object
- repo.cached
-
- # atomic replace file, size doesn't change
- # hopefully st_mtime doesn't change as well so this doesn't use the cache
- # because of inode change
- f = scmutil.opener('.')('x', 'w', atomictemp=True)
- f.write('b')
- f.close()
-
- repo.invalidate()
- repo.cached
-
-def fakeuncacheable():
- def wrapcacheable(orig, *args, **kwargs):
- return False
-
- def wrapinit(orig, *args, **kwargs):
- pass
-
- originit = extensions.wrapfunction(util.cachestat, '__init__', wrapinit)
- origcacheable = extensions.wrapfunction(util.cachestat, 'cacheable',
- wrapcacheable)
-
- try:
- os.remove('x')
- except OSError:
- pass
-
- basic(fakerepo())
-
- util.cachestat.cacheable = origcacheable
- util.cachestat.__init__ = originit
-
-print 'basic:'
-print
-basic(fakerepo())
-print
-print 'fakeuncacheable:'
-print
-fakeuncacheable()