##// END OF EJS Templates
repository: define manifest interfaces...
repository: define manifest interfaces The long march towards declaring interfaces for repository primitives continues. This commit essentially defines interfaces based on the following types: * manifest.manifestdict -> imanifestdict * manifest.manifestlog -> imanifestlog * manifest.memmanifestctx -> imanifestrevisionwritable * manifest.manifestctx -> imanifestrevisionstored * manifest.memtreemanifestctx -> imanifestrevisionwritable * manifest.treemanifestctx -> imanifestrevisionstored * util.dirs -> idirs The interfaces are thoroughly documented. Their documentation is now better than the documentation in manifest.py in many cases. With the exception of util.dirs, classes have been annotated with their interfaces. (I didn't feel like util.dirs needed the proper interface treatment.) Tests have been added demonstrating that all classes and instances conform to their interfaces. This work was much easier than filelogs. That's because Durham did an excellent job formalizing the manifest API a while back. There are still some minor kludges with the interfaces that should probably be addressed. But the primary goal with interface declarations is getting something established. Once we have an interface, we can modify it later easily enough. Differential Revision: https://phab.mercurial-scm.org/D3869

File last commit:

r37918:bbff7170 @28 default
r38549:c82ea938 default
Show More
test-status-inprocess.py
47 lines | 996 B | text/x-python | PythonLexer
/ tests / test-status-inprocess.py
timeless
tests: use /usr/bin/env python for test-status-inprocess.py...
r28824 #!/usr/bin/env python
Robert Stanca
py3: use print_function in test-status-inprocess.py
r28766 from __future__ import absolute_import, print_function
Yuya Nishihara
tests: stop direct symbol import of mercurial modules in test-status-inprocess
r28843
Augie Fackler
tests: fix test-status-inprocess.py on Python 3...
r37918 import sys
Yuya Nishihara
tests: stop direct symbol import of mercurial modules in test-status-inprocess
r28843 from mercurial import (
commands,
localrepo,
ui as uimod,
Robert Stanca
py3: use absolute_import in test-status-inprocess.py
r28765 )
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838
Augie Fackler
tests: fix test-status-inprocess.py on Python 3...
r37918 print_ = print
def print(*args, **kwargs):
"""print() wrapper that flushes stdout buffers to avoid py3 buffer issues
We could also just write directly to sys.stdout.buffer the way the
ui object will, but this was easier for porting the test.
"""
print_(*args, **kwargs)
sys.stdout.flush()
Yuya Nishihara
ui: factor out ui.load() to create a ui without loading configs (API)...
r30559 u = uimod.ui.load()
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838
Robert Stanca
py3: use print_function in test-status-inprocess.py
r28766 print('% creating repo')
Pulkit Goyal
py3: add b'' prefixes to tests/test-status-inprocess.py...
r37678 repo = localrepo.localrepository(u, b'.', create=True)
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838
f = open('test.py', 'w')
try:
f.write('foo\n')
finally:
f.close
Robert Stanca
py3: use print_function in test-status-inprocess.py
r28766 print('% add and commit')
Pulkit Goyal
py3: add b'' prefixes to tests/test-status-inprocess.py...
r37678 commands.add(u, repo, b'test.py')
commands.commit(u, repo, message=b'*')
Yuya Nishihara
tests: stop direct symbol import of mercurial modules in test-status-inprocess
r28843 commands.status(u, repo, clean=True)
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838
Robert Stanca
py3: use print_function in test-status-inprocess.py
r28766 print('% change')
Ronny Pfannschmidt
add a test for the inprocess status dirstate race
r10838 f = open('test.py', 'w')
try:
f.write('bar\n')
finally:
f.close()
# this would return clean instead of changed before the fix
Yuya Nishihara
tests: stop direct symbol import of mercurial modules in test-status-inprocess
r28843 commands.status(u, repo, clean=True, modified=True)