view tests/test-ui-color.py @ 19432:e92d4b8530cb

hgweb: file diff and changesets views behave like file source view This gives all the benefits introduced before for file source view, namely code selection without line numbers and correct indents, highlighting line which is linked to, long lines wrapping. Implementation strategy is also the same as for file source view: all the lines are put in a sigle pre tag with span's for each line. Correct line numbering (same as before this patch) is achieved with nested CSS counters.
author Alexander Plavin <me@aplavin.ru>
date Sat, 13 Jul 2013 00:57:10 +0400
parents ff1586a3adc5
children 2e5be704bc96
line wrap: on
line source

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