tests/test-ui-color.py
author Martin von Zweigbergk <martinvonz@google.com>
Wed, 11 Feb 2015 22:22:29 -0800
changeset 26971 9f3410a52f44
parent 19322 ff1586a3adc5
child 28682 2e5be704bc96
permissions -rw-r--r--
test-rename-merge2: make selected output less arbitrary It's unclear why everything from the first 'updating:' line should be ignored. The arbitrariness makes it confusing that changing the code so e.g. the 'getting 8/f' line is printed later makes it disappear completely from the ouput. The list of 'preserving x for resolve of y' seems convered by the subsequent for loop in the test case. Perhaps it's only copies that are of interests, so let's keep only that part.

import os
from hgext import color
from mercurial import dispatch, ui

# ensure errors aren't buffered
testui = color.colorui()
testui.pushbuffer()
testui.write(('buffered\n'))
testui.warn(('warning\n'))
testui.write_err('error\n')
print repr(testui.popbuffer())

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

ui_ = ui.ui()
ui_.setconfig('ui', 'formatted', 'True')

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

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

runcmd()
print "colored? " + str(issubclass(ui_.__class__, color.colorui))
runcmd()
print "colored? " + str(issubclass(ui_.__class__, color.colorui))