mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 08:18:15 +03:00
1d44bd2bbb
This allows us to write doctests depending on a ui object, but not on global configs. ui.load() is a class method so we can do wsgiui.load(). All ui() calls but for doctests are replaced with ui.load(). Some of them could be changed to not load configs later.
114 lines
4.0 KiB
Python
114 lines
4.0 KiB
Python
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')
|