view tests/test-ui-config.py @ 34661:eb586ed5d8ce

transaction-summary: show the range of new revisions upon pull/unbundle (BC) Upon pull or unbundle, we display a message with the range of new revisions fetched. This revision range could readily be used after a pull to look out what's new with 'hg log'. The algorithm takes care of filtering "obsolete" revisions that might be present in transaction's "changes" but should not be displayed to the end user.
author Denis Laxalde <denis.laxalde@logilab.fr>
date Thu, 12 Oct 2017 09:39:50 +0200
parents 0ed730f3301c
children 85a2db47ad50
line wrap: on
line source

from __future__ import absolute_import, print_function
from mercurial import (
    dispatch,
    error,
    ui as uimod,
)

testui = uimod.ui.load()
parsed = dispatch._parseconfig(testui, [
    'values.string=string value',
    'values.bool1=true',
    'values.bool2=false',
    'values.boolinvalid=foo',
    'values.int1=42',
    'values.int2=-42',
    'values.intinvalid=foo',
    'lists.list1=foo',
    'lists.list2=foo bar baz',
    'lists.list3=alice, bob',
    'lists.list4=foo bar baz alice, bob',
    'lists.list5=abc d"ef"g "hij def"',
    'lists.list6="hello world", "how are you?"',
    'lists.list7=Do"Not"Separate',
    'lists.list8="Do"Separate',
    'lists.list9="Do\\"NotSeparate"',
    'lists.list10=string "with extraneous" quotation mark"',
    'lists.list11=x, y',
    'lists.list12="x", "y"',
    'lists.list13=""" key = "x", "y" """',
    'lists.list14=,,,,     ',
    'lists.list15=" just with starting quotation',
    'lists.list16="longer quotation" with "no ending quotation',
    'lists.list17=this is \\" "not a quotation mark"',
    'lists.list18=\n \n\nding\ndong',
    'date.epoch=0 0',
    'date.birth=2005-04-19T00:00:00',
    'date.invalid=0'
    ])

print(repr(testui.configitems('values')))
print(repr(testui.configitems('lists')))
print("---")
print(repr(testui.config('values', 'string')))
print(repr(testui.config('values', 'bool1')))
print(repr(testui.config('values', 'bool2')))
print(repr(testui.config('values', 'unknown')))
print("---")
try:
    print(repr(testui.configbool('values', 'string')))
except error.ConfigError as inst:
    print(inst)
print(repr(testui.configbool('values', 'bool1')))
print(repr(testui.configbool('values', 'bool2')))
print(repr(testui.configbool('values', 'bool2', True)))
print(repr(testui.configbool('values', 'unknown')))
print(repr(testui.configbool('values', 'unknown', True)))
print("---")
print(repr(testui.configint('values', 'int1')))
print(repr(testui.configint('values', 'int2')))
print("---")
print(repr(testui.configlist('lists', 'list1')))
print(repr(testui.configlist('lists', 'list2')))
print(repr(testui.configlist('lists', 'list3')))
print(repr(testui.configlist('lists', 'list4')))
print(repr(testui.configlist('lists', 'list4', ['foo'])))
print(repr(testui.configlist('lists', 'list5')))
print(repr(testui.configlist('lists', 'list6')))
print(repr(testui.configlist('lists', 'list7')))
print(repr(testui.configlist('lists', 'list8')))
print(repr(testui.configlist('lists', 'list9')))
print(repr(testui.configlist('lists', 'list10')))
print(repr(testui.configlist('lists', 'list11')))
print(repr(testui.configlist('lists', 'list12')))
print(repr(testui.configlist('lists', 'list13')))
print(repr(testui.configlist('lists', 'list14')))
print(repr(testui.configlist('lists', 'list15')))
print(repr(testui.configlist('lists', 'list16')))
print(repr(testui.configlist('lists', 'list17')))
print(repr(testui.configlist('lists', 'list18')))
print(repr(testui.configlist('lists', 'unknown')))
print(repr(testui.configlist('lists', 'unknown', '')))
print(repr(testui.configlist('lists', 'unknown', 'foo')))
print(repr(testui.configlist('lists', 'unknown', ['foo'])))
print(repr(testui.configlist('lists', 'unknown', 'foo bar')))
print(repr(testui.configlist('lists', 'unknown', 'foo, bar')))
print(repr(testui.configlist('lists', 'unknown', ['foo bar'])))
print(repr(testui.configlist('lists', 'unknown', ['foo', 'bar'])))
print("---")
print(repr(testui.configdate('date', 'epoch')))
print(repr(testui.configdate('date', 'birth')))

print(repr(testui.config('values', 'String')))

def function():
    pass

# values that aren't strings should work
testui.setconfig('hook', 'commit', function)
print(function == testui.config('hook', 'commit'))

# invalid values
try:
    testui.configbool('values', 'boolinvalid')
except error.ConfigError:
    print('boolinvalid')
try:
    testui.configint('values', 'intinvalid')
except error.ConfigError:
    print('intinvalid')
try:
    testui.configdate('date', 'invalid')
except error.ConfigError:
    print('dateinvalid')