view tests/test-ui-verbosity.py @ 31432:6e1c79578e5c

mq: explicitly tests for None Changeset fd3d8eb7f545 removed the mutable default value, but did not explicitly tested for None. Such implicit testing can introduce semantic and performance issue. We move to an explicit testing for None as recommended by PEP8: https://www.python.org/dev/peps/pep-0008/#programming-recommendations
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Wed, 15 Mar 2017 15:05:54 -0700
parents d83ca854fa21
children 2507bf180413
line wrap: on
line source

from __future__ import absolute_import, print_function

import os
from mercurial import (
    ui as uimod,
)

hgrc = os.environ['HGRCPATH']
f = open(hgrc)
basehgrc = f.read()
f.close()

print('      hgrc settings    command line options      final result   ')
print('    quiet verbo debug   quiet verbo debug      quiet verbo debug')

for i in xrange(64):
    hgrc_quiet   = bool(i & 1<<0)
    hgrc_verbose = bool(i & 1<<1)
    hgrc_debug   = bool(i & 1<<2)
    cmd_quiet    = bool(i & 1<<3)
    cmd_verbose  = bool(i & 1<<4)
    cmd_debug    = bool(i & 1<<5)

    f = open(hgrc, 'w')
    f.write(basehgrc)
    f.write('\n[ui]\n')
    if hgrc_quiet:
        f.write('quiet = True\n')
    if hgrc_verbose:
        f.write('verbose = True\n')
    if hgrc_debug:
        f.write('debug = True\n')
    f.close()

    u = uimod.ui.load()
    if cmd_quiet or cmd_debug or cmd_verbose:
        u.setconfig('ui', 'quiet', str(bool(cmd_quiet)))
        u.setconfig('ui', 'verbose', str(bool(cmd_verbose)))
        u.setconfig('ui', 'debug', str(bool(cmd_debug)))

    check = ''
    if u.debugflag:
        if not u.verbose or u.quiet:
            check = ' *'
    elif u.verbose and u.quiet:
        check = ' +'

    print(('%2d  %5s %5s %5s   %5s %5s %5s  ->  %5s %5s %5s%s'
           % (i, hgrc_quiet, hgrc_verbose, hgrc_debug,
              cmd_quiet, cmd_verbose, cmd_debug,
              u.quiet, u.verbose, u.debugflag, check)))