Mercurial > hg
view tests/mockblackbox.py @ 37483:61e405fb6372
wireproto: crude support for version 2 HTTP peer
As part of implementing the server-side bits of the wire protocol
command handlers for version 2, we want a way to easily test those
commands. Currently, we use the "httprequest" action of `hg
debugwireproto`. But this requires explicitly specifying the HTTP
request headers, low-level frame details, and the data structure
to encode with CBOR. That's a lot of boilerplate and a lot of it can
change as the wire protocol evolves.
`hg debugwireproto` has a mechanism to issue commands via the peer
interface. That is *much* easier to use and we prefer to test with
that going forward.
This commit implements enough parts of the peer API to send basic
requests via the HTTP version 2 transport.
The peer code is super hacky. Again, the goal is to facilitate
server testing, not robustly implement a client. The client code
will receive love at a later time.
Differential Revision: https://phab.mercurial-scm.org/D3177
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 28 Mar 2018 15:09:34 -0700 |
parents | a8a902d7176e |
children | 2372284d9457 |
line wrap: on
line source
from __future__ import absolute_import from mercurial.utils import ( procutil, ) # XXX: we should probably offer a devel option to do this in blackbox directly def getuser(): return b'bob' def getpid(): return 5000 # mock the date and user apis so the output is always the same def uisetup(ui): procutil.getuser = getuser procutil.getpid = getpid