test-ui-config.py
122 lines
| 4.3 KiB
| text/x-python
|
PythonLexer
/ tests / test-ui-config.py
Pulkit Goyal
|
r28681 | from __future__ import absolute_import, print_function | ||
Pulkit Goyal
|
r28680 | from mercurial import ( | ||
dispatch, | ||||
error, | ||||
Yuya Nishihara
|
r28776 | ui as uimod, | ||
Pulkit Goyal
|
r28680 | ) | ||
Martin Geisler
|
r8449 | |||
Yuya Nishihara
|
r30559 | testui = uimod.ui.load() | ||
Boris Feld
|
r34859 | |||
# disable the configuration registration warning | ||||
# | ||||
# the purpose of this test is to check the old behavior, not to validate the | ||||
# behavior from registered item. so we silent warning related to unregisted | ||||
# config. | ||||
testui.setconfig('devel', 'warn-config-unknown', False, 'test') | ||||
testui.setconfig('devel', 'all-warnings', False, 'test') | ||||
Martin Geisler
|
r8449 | parsed = dispatch._parseconfig(testui, [ | ||
'values.string=string value', | ||||
'values.bool1=true', | ||||
'values.bool2=false', | ||||
Sune Foldager
|
r14171 | 'values.boolinvalid=foo', | ||
'values.int1=42', | ||||
'values.int2=-42', | ||||
'values.intinvalid=foo', | ||||
Martin Geisler
|
r8449 | 'lists.list1=foo', | ||
'lists.list2=foo bar baz', | ||||
'lists.list3=alice, bob', | ||||
'lists.list4=foo bar baz alice, bob', | ||||
Henrik Stuart
|
r10982 | '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"', | ||||
Thomas Arendsen Hein
|
r11309 | 'lists.list18=\n \n\nding\ndong', | ||
Boris Feld
|
r32449 | 'date.epoch=0 0', | ||
'date.birth=2005-04-19T00:00:00', | ||||
'date.invalid=0' | ||||
Sune Foldager
|
r14171 | ]) | ||
Martin Geisler
|
r8449 | |||
Pulkit Goyal
|
r28681 | 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("---") | ||||
Martin Geisler
|
r8449 | try: | ||
Pulkit Goyal
|
r28681 | print(repr(testui.configbool('values', 'string'))) | ||
Gregory Szorc
|
r25660 | except error.ConfigError as inst: | ||
Pulkit Goyal
|
r28681 | 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']))) | ||||
Boris Feld
|
r32449 | print("---") | ||
print(repr(testui.configdate('date', 'epoch'))) | ||||
print(repr(testui.configdate('date', 'birth'))) | ||||
Martin Geisler
|
r8449 | |||
Pulkit Goyal
|
r28681 | print(repr(testui.config('values', 'String'))) | ||
Martin Geisler
|
r8449 | |||
def function(): | ||||
pass | ||||
# values that aren't strings should work | ||||
testui.setconfig('hook', 'commit', function) | ||||
Pulkit Goyal
|
r28681 | print(function == testui.config('hook', 'commit')) | ||
Sune Foldager
|
r14171 | |||
# invalid values | ||||
try: | ||||
testui.configbool('values', 'boolinvalid') | ||||
except error.ConfigError: | ||||
Pulkit Goyal
|
r28681 | print('boolinvalid') | ||
Sune Foldager
|
r14171 | try: | ||
testui.configint('values', 'intinvalid') | ||||
except error.ConfigError: | ||||
Pulkit Goyal
|
r28681 | print('intinvalid') | ||
Boris Feld
|
r32449 | try: | ||
testui.configdate('date', 'invalid') | ||||
except error.ConfigError: | ||||
print('dateinvalid') | ||||