diff tests/test-pager.t @ 34039:31a2eb0f74e5

pager: do not start pager if `ui` has been `pushbuffer`-ed The `pushbuffer`, `popbuffer` APIs are intended to capture internal output. They will prevent `ui.write` from writing to the actual `ui.fout`. So a pager won't receive the output and do the right thing. In general, it does not make sense to start a pager if ui is in the "pushbuffer" mode. Differential Revision: https://phab.mercurial-scm.org/D574
author Jun Wu <quark@fb.com>
date Wed, 30 Aug 2017 14:04:55 -0700
parents dcfa83652744
children 73d8a5283f87
line wrap: on
line diff
--- a/tests/test-pager.t	Wed Aug 30 16:05:12 2017 -0700
+++ b/tests/test-pager.t	Wed Aug 30 14:04:55 2017 -0700
@@ -340,6 +340,20 @@
    9: a 9
   10: a 10
 
+During pushbuffer, pager should not start:
+  $ cat > $TESTTMP/pushbufferpager.py <<EOF
+  > def uisetup(ui):
+  >     ui.pushbuffer()
+  >     ui.pager('mycmd')
+  >     ui.write('content\n')
+  >     ui.write(ui.popbuffer())
+  > EOF
+
+  $ echo append >> a
+  $ hg --config extensions.pushbuffer=$TESTTMP/pushbufferpager.py status --color=off
+  content
+  paged! 'M a\n'
+
 Environment variables like LESS and LV are set automatically:
   $ cat > $TESTTMP/printlesslv.py <<EOF
   > from __future__ import absolute_import