comparison tests/test-filecache.py @ 31251:34d57ddaf9f2

vfs: use 'vfs' module directly in 'test-filecache' Now that the 'vfs' classes moved in their own module, lets use the new module directly. We update code iteratively to help with possible bisect needs in the future.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Thu, 02 Mar 2017 13:33:28 +0100
parents 21fa3d3688f3
children 74cbbd5420ba
comparison
equal deleted inserted replaced
31250:6d44de27790c 31251:34d57ddaf9f2
11 extensions, 11 extensions,
12 hg, 12 hg,
13 scmutil, 13 scmutil,
14 ui as uimod, 14 ui as uimod,
15 util, 15 util,
16 vfs as vfsmod,
16 ) 17 )
17 18
18 filecache = scmutil.filecache 19 filecache = scmutil.filecache
19 20
20 class fakerepo(object): 21 class fakerepo(object):
71 repo.cached 72 repo.cached
72 73
73 # atomic replace file, size doesn't change 74 # atomic replace file, size doesn't change
74 # hopefully st_mtime doesn't change as well so this doesn't use the cache 75 # hopefully st_mtime doesn't change as well so this doesn't use the cache
75 # because of inode change 76 # because of inode change
76 f = scmutil.vfs('.')('x', 'w', atomictemp=True) 77 f = vfsmod.vfs('.')('x', 'w', atomictemp=True)
77 f.write('b') 78 f.write('b')
78 f.close() 79 f.close()
79 80
80 repo.invalidate() 81 repo.invalidate()
81 print("* file x changed inode") 82 print("* file x changed inode")
95 repo.invalidate() 96 repo.invalidate()
96 print("* file y changed size") 97 print("* file y changed size")
97 # should recreate the object 98 # should recreate the object
98 repo.cached 99 repo.cached
99 100
100 f = scmutil.vfs('.')('y', 'w', atomictemp=True) 101 f = vfsmod.vfs('.')('y', 'w', atomictemp=True)
101 f.write('B') 102 f.write('B')
102 f.close() 103 f.close()
103 104
104 repo.invalidate() 105 repo.invalidate()
105 print("* file y changed inode") 106 print("* file y changed inode")
106 repo.cached 107 repo.cached
107 108
108 f = scmutil.vfs('.')('x', 'w', atomictemp=True) 109 f = vfsmod.vfs('.')('x', 'w', atomictemp=True)
109 f.write('c') 110 f.write('c')
110 f.close() 111 f.close()
111 f = scmutil.vfs('.')('y', 'w', atomictemp=True) 112 f = vfsmod.vfs('.')('y', 'w', atomictemp=True)
112 f.write('C') 113 f.write('C')
113 f.close() 114 f.close()
114 115
115 repo.invalidate() 116 repo.invalidate()
116 print("* both files changed inode") 117 print("* both files changed inode")
198 199
199 # repeat changing via checkambigatclosing, to examine whether 200 # repeat changing via checkambigatclosing, to examine whether
200 # st_mtime is advanced multiple times as expected 201 # st_mtime is advanced multiple times as expected
201 for i in xrange(repetition): 202 for i in xrange(repetition):
202 # explicit closing 203 # explicit closing
203 fp = scmutil.checkambigatclosing(open(filename, 'a')) 204 fp = vfsmod.checkambigatclosing(open(filename, 'a'))
204 fp.write('FOO') 205 fp.write('FOO')
205 fp.close() 206 fp.close()
206 207
207 # implicit closing by "with" statement 208 # implicit closing by "with" statement
208 with scmutil.checkambigatclosing(open(filename, 'a')) as fp: 209 with vfsmod.checkambigatclosing(open(filename, 'a')) as fp:
209 fp.write('BAR') 210 fp.write('BAR')
210 211
211 newstat = os.stat(filename) 212 newstat = os.stat(filename)
212 if oldstat.st_ctime != newstat.st_ctime: 213 if oldstat.st_ctime != newstat.st_ctime:
213 # timestamp ambiguity was naturally avoided while repetition 214 # timestamp ambiguity was naturally avoided while repetition