view tests/hgweberror.py @ 44725:16c361152133

graft: exit 1 on conflicts, like merge It's more consistent, and makes it nicer to script around hg if you don't have to ignore exit code 255, which is the error code for basically everything in hg. Differential Revision: https://phab.mercurial-scm.org/D8423
author Valentin Gatien-Baron <vgatien-baron@janestreet.com>
date Tue, 14 Apr 2020 19:09:56 -0400
parents 2372284d9457
children 6000f5b25c9b
line wrap: on
line source

# A dummy extension that installs an hgweb command that throws an Exception.

from __future__ import absolute_import

from mercurial.hgweb import webcommands


def raiseerror(web):
    '''Dummy web command that raises an uncaught Exception.'''

    # Simulate an error after partial response.
    if b'partialresponse' in web.req.qsparams:
        web.res.status = b'200 Script output follows'
        web.res.headers[b'Content-Type'] = b'text/plain'
        web.res.setbodywillwrite()
        list(web.res.sendresponse())
        web.res.getbodyfile().write(b'partial content\n')

    raise AttributeError('I am an uncaught error!')


def extsetup(ui):
    setattr(webcommands, 'raiseerror', raiseerror)
    webcommands.__all__.append(b'raiseerror')