##// END OF EJS Templates
cleanup: use () to wrap long lines instead of \...
cleanup: use () to wrap long lines instead of \ This is a little less brittle, and often helps indentation. In a surprising number of cases the entire cleanup was deleting the \, as the expression was *already* parenthesized in a workable way. Differential Revision: https://phab.mercurial-scm.org/D5993

File last commit:

r40383:e5d74742 default
r41925:aaad36b8 default
Show More
test-propertycache.py
189 lines | 6.5 KiB | text/x-python | PythonLexer
/ tests / test-propertycache.py
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845 """test behavior of propertycache and unfiltered propertycache
Mads Kiilerich
spelling: random spell checker fixes
r19951 The repoview overlay is quite complex. We test the behavior of
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845 property cache of both localrepo and repoview to prevent
regression."""
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 from __future__ import absolute_import, print_function
Robert Stanca
py3: use absolute_import in test-propertycache.py
r28755 import os
import subprocess
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Yuya Nishihara
tests: import mercurial modules by name in test-propertycache...
r28839 from mercurial import (
hg,
localrepo,
Mark Thomas
py3: fix test-propertycache.py...
r40333 pycompat,
Yuya Nishihara
tests: import mercurial modules by name in test-propertycache...
r28839 ui as uimod,
util,
)
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Matt Harbison
py3: fix test-propertycache.py on Windows
r40383 from mercurial.utils import (
procutil,
)
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845 # create some special property cache that trace they call
calllog = []
Yuya Nishihara
tests: import mercurial modules by name in test-propertycache...
r28839 @util.propertycache
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845 def testcachedfoobar(repo):
name = repo.filtername
if name is None:
name = ''
val = len(name)
calllog.append(val)
return val
Pierre-Yves David
repoview: have unfilteredpropertycache using the underlying cache...
r19846 unficalllog = []
Yuya Nishihara
tests: import mercurial modules by name in test-propertycache...
r28839 @localrepo.unfilteredpropertycache
Pierre-Yves David
repoview: have unfilteredpropertycache using the underlying cache...
r19846 def testcachedunfifoobar(repo):
name = repo.filtername
if name is None:
name = ''
val = 100 + len(name)
unficalllog.append(val)
return val
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845 #plug them on repo
Yuya Nishihara
tests: import mercurial modules by name in test-propertycache...
r28839 localrepo.localrepository.testcachedfoobar = testcachedfoobar
localrepo.localrepository.testcachedunfifoobar = testcachedunfifoobar
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Mads Kiilerich
spelling: fixes from spell checker
r21024 # Create an empty repo and instantiate it. It is important to run
# these tests on the real object to detect regression.
Mark Thomas
py3: fix test-propertycache.py...
r40333 repopath = pycompat.fsencode(os.path.join(os.environ['TESTTMP'], 'repo'))
Matt Harbison
py3: fix test-propertycache.py on Windows
r40383 assert subprocess.call(pycompat.rapply(procutil.tonativestr,
[b'hg', b'init', repopath])) == 0
Yuya Nishihara
ui: factor out ui.load() to create a ui without loading configs (API)...
r30559 ui = uimod.ui.load()
Yuya Nishihara
tests: import mercurial modules by name in test-propertycache...
r28839 repo = hg.repository(ui, path=repopath).unfiltered()
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('=== property cache ===')
print('')
print('calllog:', calllog)
print('cached value (unfiltered):',
vars(repo).get('testcachedfoobar', 'NOCACHE'))
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('= first access on unfiltered, should do a call')
print('access:', repo.testcachedfoobar)
print('calllog:', calllog)
print('cached value (unfiltered):',
vars(repo).get('testcachedfoobar', 'NOCACHE'))
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('= second access on unfiltered, should not do call')
print('access', repo.testcachedfoobar)
print('calllog:', calllog)
print('cached value (unfiltered):',
vars(repo).get('testcachedfoobar', 'NOCACHE'))
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('= first access on "visible" view, should do a call')
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845 visibleview = repo.filtered('visible')
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('cached value ("visible" view):',
vars(visibleview).get('testcachedfoobar', 'NOCACHE'))
print('access:', visibleview.testcachedfoobar)
print('calllog:', calllog)
print('cached value (unfiltered):',
vars(repo).get('testcachedfoobar', 'NOCACHE'))
print('cached value ("visible" view):',
vars(visibleview).get('testcachedfoobar', 'NOCACHE'))
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('= second access on "visible view", should not do call')
print('access:', visibleview.testcachedfoobar)
print('calllog:', calllog)
print('cached value (unfiltered):',
vars(repo).get('testcachedfoobar', 'NOCACHE'))
print('cached value ("visible" view):',
vars(visibleview).get('testcachedfoobar', 'NOCACHE'))
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('= no effect on other view')
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845 immutableview = repo.filtered('immutable')
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('cached value ("immutable" view):',
vars(immutableview).get('testcachedfoobar', 'NOCACHE'))
print('access:', immutableview.testcachedfoobar)
print('calllog:', calllog)
print('cached value (unfiltered):',
vars(repo).get('testcachedfoobar', 'NOCACHE'))
print('cached value ("visible" view):',
vars(visibleview).get('testcachedfoobar', 'NOCACHE'))
print('cached value ("immutable" view):',
vars(immutableview).get('testcachedfoobar', 'NOCACHE'))
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845
Pierre-Yves David
repoview: have unfilteredpropertycache using the underlying cache...
r19846 # unfiltered property cache test
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('')
print('=== unfiltered property cache ===')
print('')
print('unficalllog:', unficalllog)
print('cached value (unfiltered): ',
vars(repo).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("visible" view): ',
vars(visibleview).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("immutable" view):',
vars(immutableview).get('testcachedunfifoobar', 'NOCACHE'))
Pierre-Yves David
repoview: have unfilteredpropertycache using the underlying cache...
r19846
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('= first access on unfiltered, should do a call')
print('access (unfiltered):', repo.testcachedunfifoobar)
print('unficalllog:', unficalllog)
print('cached value (unfiltered): ',
vars(repo).get('testcachedunfifoobar', 'NOCACHE'))
Pierre-Yves David
repoview: have unfilteredpropertycache using the underlying cache...
r19846
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('= second access on unfiltered, should not do call')
print('access (unfiltered):', repo.testcachedunfifoobar)
print('unficalllog:', unficalllog)
print('cached value (unfiltered): ',
vars(repo).get('testcachedunfifoobar', 'NOCACHE'))
Pierre-Yves David
repoview: have unfilteredpropertycache using the underlying cache...
r19846
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('= access on view should use the unfiltered cache')
print('access (unfiltered): ', repo.testcachedunfifoobar)
print('access ("visible" view): ', visibleview.testcachedunfifoobar)
print('access ("immutable" view):', immutableview.testcachedunfifoobar)
print('unficalllog:', unficalllog)
print('cached value (unfiltered): ',
vars(repo).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("visible" view): ',
vars(visibleview).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("immutable" view):',
vars(immutableview).get('testcachedunfifoobar', 'NOCACHE'))
Pierre-Yves David
repoview: have unfilteredpropertycache using the underlying cache...
r19846
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('')
print('= even if we clear the unfiltered cache')
Pierre-Yves David
repoview: have unfilteredpropertycache using the underlying cache...
r19846 del repo.__dict__['testcachedunfifoobar']
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('cached value (unfiltered): ',
vars(repo).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("visible" view): ',
vars(visibleview).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("immutable" view):',
vars(immutableview).get('testcachedunfifoobar', 'NOCACHE'))
print('unficalllog:', unficalllog)
print('access ("visible" view): ', visibleview.testcachedunfifoobar)
print('unficalllog:', unficalllog)
print('cached value (unfiltered): ',
vars(repo).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("visible" view): ',
vars(visibleview).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("immutable" view):',
vars(immutableview).get('testcachedunfifoobar', 'NOCACHE'))
print('access ("immutable" view):', immutableview.testcachedunfifoobar)
print('unficalllog:', unficalllog)
print('cached value (unfiltered): ',
vars(repo).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("visible" view): ',
vars(visibleview).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("immutable" view):',
vars(immutableview).get('testcachedunfifoobar', 'NOCACHE'))
print('access (unfiltered): ', repo.testcachedunfifoobar)
print('unficalllog:', unficalllog)
print('cached value (unfiltered): ',
vars(repo).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("visible" view): ',
vars(visibleview).get('testcachedunfifoobar', 'NOCACHE'))
print('cached value ("immutable" view):',
vars(immutableview).get('testcachedunfifoobar', 'NOCACHE'))