view tests/test-ui-color.py @ 39577:cb1329738d64

tests: handle Python 3 not quoting non-empty-directory error I assume this happens on Windows too, so I did the same regex on both versions of the output. The whole message printed by these aborts comes from Python, so if we want to exert control over the quoting here it'll be a bit of a pain. Differential Revision: https://phab.mercurial-scm.org/D4546
author Augie Fackler <augie@google.com>
date Wed, 12 Sep 2018 11:38:46 -0400
parents 32bc3815efae
children 2372284d9457
line wrap: on
line source

from __future__ import absolute_import, print_function

import os
from mercurial import (
    dispatch,
    ui as uimod,
)
from mercurial.utils import (
    stringutil,
)

# ensure errors aren't buffered
testui = uimod.ui()
testui.pushbuffer()
testui.write((b'buffered\n'))
testui.warn((b'warning\n'))
testui.write_err(b'error\n')
print(stringutil.pprint(testui.popbuffer(), bprefix=True).decode('ascii'))

# test dispatch.dispatch with the same ui object
hgrc = open(os.environ["HGRCPATH"], 'wb')
hgrc.write(b'[extensions]\n')
hgrc.write(b'color=\n')
hgrc.close()

ui_ = uimod.ui.load()
ui_.setconfig(b'ui', b'formatted', b'True')

# we're not interested in the output, so write that to devnull
ui_.fout = open(os.devnull, 'wb')

# call some arbitrary command just so we go through
# color's wrapped _runcommand twice.
def runcmd():
    dispatch.dispatch(dispatch.request([b'version', b'-q'], ui_))

runcmd()
print("colored? %s" % (ui_._colormode is not None))
runcmd()
print("colored? %s" % (ui_._colormode is not None))