tests/test-ui-color.py
changeset 14516 842a9179132c
parent 12865 4c50552fc9bc
child 14614 afccc64eea73
--- a/tests/test-ui-color.py	Thu Jun 02 00:43:34 2011 +0300
+++ b/tests/test-ui-color.py	Thu Jun 02 00:43:34 2011 +0300
@@ -1,4 +1,6 @@
+import os, sys
 from hgext import color
+from mercurial import dispatch, ui
 
 # ensure errors aren't buffered
 testui = color.colorui()
@@ -7,3 +9,25 @@
 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')
+
+# call some arbitrary command just so we go through
+# color's wrapped _runcommand twice.
+# we're not interested in the output, so write that to devnull
+def runcmd():
+    sys.stdout = open(os.devnull, 'w')
+    dispatch.dispatch(dispatch.request(['version', '-q'], ui_))
+    sys.stdout = sys.__stdout__
+
+runcmd()
+print "colored? " + str(issubclass(ui_.__class__, color.colorui))
+runcmd()
+print "colored? " + str(issubclass(ui_.__class__, color.colorui))