tests/test-ui-color.py
author Durham Goode <durham@fb.com>
Tue, 11 Feb 2014 21:10:00 -0800
changeset 20518 1e43f15a647f
parent 19322 ff1586a3adc5
child 28682 2e5be704bc96
permissions -rw-r--r--
template: add ifcontains template function Adds a template function with the signature 'ifcontains(item, set, then[, else])'. It can be used to do things like '{ifcontains('.hgignore', file_mods, label(...), ...)}' to color commits that edit the .hgignore file. A future patch will add the revset() function which will combine with ifcontains to allow us to color commits if they are in the revset.

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