##// END OF EJS Templates
errors: stop passing non-strings to Abort's constructor...
errors: stop passing non-strings to Abort's constructor The next patch will change `Abort`'s constructor and `__bytes__` functions and they will start assuming that the first argument is the messages as `bytes`. Differential Revision: https://phab.mercurial-scm.org/D9178

File last commit:

r43346:2372284d default
r46273:a736ab68 default
Show More
test-propertycache.py
255 lines | 6.7 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
Augie Fackler
formatting: blacken the codebase...
r43346 from mercurial.utils import procutil
Matt Harbison
py3: fix test-propertycache.py on Windows
r40383
Pierre-Yves David
repoview: make propertycache.setcache compatible with repoview...
r19845 # create some special property cache that trace they call
calllog = []
Augie Fackler
formatting: blacken the codebase...
r43346
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
Augie Fackler
formatting: blacken the codebase...
r43346
Pierre-Yves David
repoview: have unfilteredpropertycache using the underlying cache...
r19846 unficalllog = []
Augie Fackler
formatting: blacken the codebase...
r43346
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
Augie Fackler
formatting: blacken the codebase...
r43346
# 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'))
Augie Fackler
formatting: blacken the codebase...
r43346 assert (
subprocess.call(
pycompat.rapply(procutil.tonativestr, [b'hg', b'init', repopath])
)
== 0
)
Matt Harbison
py3: fix test-propertycache.py on Windows
r40383
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)
Augie Fackler
formatting: blacken the codebase...
r43346 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)
Augie Fackler
formatting: blacken the codebase...
r43346 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)
Augie Fackler
formatting: blacken the codebase...
r43346 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')
Augie Fackler
formatting: blacken the codebase...
r43346 print(
'cached value ("visible" view):',
vars(visibleview).get('testcachedfoobar', 'NOCACHE'),
)
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('access:', visibleview.testcachedfoobar)
print('calllog:', calllog)
Augie Fackler
formatting: blacken the codebase...
r43346 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)
Augie Fackler
formatting: blacken the codebase...
r43346 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')
Augie Fackler
formatting: blacken the codebase...
r43346 print(
'cached value ("immutable" view):',
vars(immutableview).get('testcachedfoobar', 'NOCACHE'),
)
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('access:', immutableview.testcachedfoobar)
print('calllog:', calllog)
Augie Fackler
formatting: blacken the codebase...
r43346 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)
Augie Fackler
formatting: blacken the codebase...
r43346 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)
Augie Fackler
formatting: blacken the codebase...
r43346 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)
Augie Fackler
formatting: blacken the codebase...
r43346 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)
Augie Fackler
formatting: blacken the codebase...
r43346 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']
Augie Fackler
formatting: blacken the codebase...
r43346 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'),
)
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('unficalllog:', unficalllog)
print('access ("visible" view): ', visibleview.testcachedunfifoobar)
print('unficalllog:', unficalllog)
Augie Fackler
formatting: blacken the codebase...
r43346 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'),
)
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('access ("immutable" view):', immutableview.testcachedunfifoobar)
print('unficalllog:', unficalllog)
Augie Fackler
formatting: blacken the codebase...
r43346 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'),
)
Robert Stanca
py3: use print_function in test-propertycache.py
r28762 print('access (unfiltered): ', repo.testcachedunfifoobar)
print('unficalllog:', unficalllog)
Augie Fackler
formatting: blacken the codebase...
r43346 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'),
)