view tests/test-status-inprocess.py @ 50631:b59e0a4f692f

store: cache the `files()` return for store entries This make it more efficient to directly use the entries list to retrieve data in various location. It also make the entry record the file size it previously promissed to user code, especially the stream clone code.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 28 May 2023 03:46:48 +0200
parents 6000f5b25c9b
children
line wrap: on
line source

#!/usr/bin/env python

import sys

from mercurial import (
    commands,
    localrepo,
    ui as uimod,
)

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()


u = uimod.ui.load()

print('% creating repo')
repo = localrepo.instance(u, b'.', create=True)

f = open('test.py', 'w')
try:
    f.write('foo\n')
finally:
    f.close

print('% add and commit')
commands.add(u, repo, b'test.py')
commands.commit(u, repo, message=b'*')
commands.status(u, repo, clean=True)


print('% change')
f = open('test.py', 'w')
try:
    f.write('bar\n')
finally:
    f.close()

# this would return clean instead of changed before the fix
commands.status(u, repo, clean=True, modified=True)