tests/test-absorb-phase.t
author Gregory Szorc <gregory.szorc@gmail.com>
Fri, 09 Nov 2018 23:49:39 +0000
branchstable
changeset 40545 6107d4549fcc
parent 40190 31dfa7dac4c9
permissions -rw-r--r--
hgweb: cast bytearray to bytes PEP-3333 seems to indicate that bytes is the only allowed type that can be used to express the output of a WSGI application. And some WSGI environments seem to enforce this (mod_wsgi does). This commit universally casts bytearray instances to bytes to appease the WSGI specification. I found this because wireprotov2 is emitting bytearray instances. I'd like to keep things that way because the way it builds a data structure, bytearray is more efficient. I'd rather keep the low-level code efficient (and using bytearray) and cast at the edges than impose a performance penalty on code that may run outside WSGI contexts.

  $ cat >> $HGRCPATH << EOF
  > [extensions]
  > absorb=
  > drawdag=$TESTDIR/drawdag.py
  > EOF

  $ hg init
  $ hg debugdrawdag <<'EOS'
  > C
  > |
  > B
  > |
  > A
  > EOS

  $ hg phase -r A --public -q
  $ hg phase -r C --secret --force -q

  $ hg update C -q
  $ printf B1 > B

  $ hg absorb -aq

  $ hg log -G -T '{desc} {phase}'
  @  C secret
  |
  o  B draft
  |
  o  A public