Mercurial > hg
view tests/test-ui-config.py @ 40049:39074a35f7db
wireprotov2: always advertise raw repo requirements
I'm pretty sure my original thinking behind making it conditional
on stream clone support was that the behavior mirrored wire protocol
version 1.
I don't see a compelling reason for us to not advertise the server's
storage requirements. The proper way to advertise stream clone support
in wireprotov2 would be to not advertise the command(s) required to
perform stream clone or to advertise a separate capability denoting
stream clone support.
Stream clone isn't yet implemented on wireprotov2, so we can cross
this bridge later.
Differential Revision: https://phab.mercurial-scm.org/D4863
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 03 Oct 2018 10:04:04 -0700 |
parents | 32bc3815efae |
children | 2372284d9457 |
line wrap: on
line source
from __future__ import absolute_import, print_function from mercurial import ( dispatch, error, pycompat, ui as uimod, ) from mercurial.utils import ( stringutil, ) testui = uimod.ui.load() # 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(b'devel', b'warn-config-unknown', False, b'test') testui.setconfig(b'devel', b'all-warnings', False, b'test') parsed = dispatch._parseconfig(testui, [ b'values.string=string value', b'values.bool1=true', b'values.bool2=false', b'values.boolinvalid=foo', b'values.int1=42', b'values.int2=-42', b'values.intinvalid=foo', b'lists.list1=foo', b'lists.list2=foo bar baz', b'lists.list3=alice, bob', b'lists.list4=foo bar baz alice, bob', b'lists.list5=abc d"ef"g "hij def"', b'lists.list6="hello world", "how are you?"', b'lists.list7=Do"Not"Separate', b'lists.list8="Do"Separate', b'lists.list9="Do\\"NotSeparate"', b'lists.list10=string "with extraneous" quotation mark"', b'lists.list11=x, y', b'lists.list12="x", "y"', b'lists.list13=""" key = "x", "y" """', b'lists.list14=,,,, ', b'lists.list15=" just with starting quotation', b'lists.list16="longer quotation" with "no ending quotation', b'lists.list17=this is \\" "not a quotation mark"', b'lists.list18=\n \n\nding\ndong', b'date.epoch=0 0', b'date.birth=2005-04-19T00:00:00', b'date.invalid=0' ]) def pprint(obj): return stringutil.pprint(obj).decode('ascii') print(pprint(testui.configitems(b'values'))) print(pprint(testui.configitems(b'lists'))) print("---") print(pprint(testui.config(b'values', b'string'))) print(pprint(testui.config(b'values', b'bool1'))) print(pprint(testui.config(b'values', b'bool2'))) print(pprint(testui.config(b'values', b'unknown'))) print("---") try: print(pprint(testui.configbool(b'values', b'string'))) except error.ConfigError as inst: print(pprint(pycompat.bytestr(inst))) print(pprint(testui.configbool(b'values', b'bool1'))) print(pprint(testui.configbool(b'values', b'bool2'))) print(pprint(testui.configbool(b'values', b'bool2', True))) print(pprint(testui.configbool(b'values', b'unknown'))) print(pprint(testui.configbool(b'values', b'unknown', True))) print("---") print(pprint(testui.configint(b'values', b'int1'))) print(pprint(testui.configint(b'values', b'int2'))) print("---") print(pprint(testui.configlist(b'lists', b'list1'))) print(pprint(testui.configlist(b'lists', b'list2'))) print(pprint(testui.configlist(b'lists', b'list3'))) print(pprint(testui.configlist(b'lists', b'list4'))) print(pprint(testui.configlist(b'lists', b'list4', [b'foo']))) print(pprint(testui.configlist(b'lists', b'list5'))) print(pprint(testui.configlist(b'lists', b'list6'))) print(pprint(testui.configlist(b'lists', b'list7'))) print(pprint(testui.configlist(b'lists', b'list8'))) print(pprint(testui.configlist(b'lists', b'list9'))) print(pprint(testui.configlist(b'lists', b'list10'))) print(pprint(testui.configlist(b'lists', b'list11'))) print(pprint(testui.configlist(b'lists', b'list12'))) print(pprint(testui.configlist(b'lists', b'list13'))) print(pprint(testui.configlist(b'lists', b'list14'))) print(pprint(testui.configlist(b'lists', b'list15'))) print(pprint(testui.configlist(b'lists', b'list16'))) print(pprint(testui.configlist(b'lists', b'list17'))) print(pprint(testui.configlist(b'lists', b'list18'))) print(pprint(testui.configlist(b'lists', b'unknown'))) print(pprint(testui.configlist(b'lists', b'unknown', b''))) print(pprint(testui.configlist(b'lists', b'unknown', b'foo'))) print(pprint(testui.configlist(b'lists', b'unknown', [b'foo']))) print(pprint(testui.configlist(b'lists', b'unknown', b'foo bar'))) print(pprint(testui.configlist(b'lists', b'unknown', b'foo, bar'))) print(pprint(testui.configlist(b'lists', b'unknown', [b'foo bar']))) print(pprint(testui.configlist(b'lists', b'unknown', [b'foo', b'bar']))) print("---") print(pprint(testui.configdate(b'date', b'epoch'))) print(pprint(testui.configdate(b'date', b'birth'))) print(pprint(testui.config(b'values', b'String'))) def function(): pass # values that aren't strings should work testui.setconfig(b'hook', b'commit', function) print(function == testui.config(b'hook', b'commit')) # invalid values try: testui.configbool(b'values', b'boolinvalid') except error.ConfigError: print('boolinvalid') try: testui.configint(b'values', b'intinvalid') except error.ConfigError: print('intinvalid') try: testui.configdate(b'date', b'invalid') except error.ConfigError: print('dateinvalid')