sapling/tests/test-ui-config.py
Jun Wu 584656dff3 codemod: join the auto-formatter party
Summary:
Turned on the auto formatter. Ran `arc lint --apply-patches --take BLACK **/*.py`.
Then run `arc lint` again so some other autofixers like spellchecker etc. looked
at the code base. Manually accept the changes whenever they make sense, or use
a workaround (ex. changing "dict()" to "dict constructor") where autofix is false
positive. Disabled linters on files that are hard (i18n/polib.py) to fix, or less
interesting to fix (hgsubversion tests), or cannot be fixed without breaking
OSS build (FBPYTHON4).

Conflicted linters (test-check-module-imports.t, part of test-check-code.t,
test-check-pyflakes.t) are removed or disabled.

Duplicated linters (test-check-pyflakes.t, test-check-pylint.t) are removed.

An issue of the auto-formatter is lines are no longer guarnateed to be <= 80
chars. But that seems less important comparing with the benefit auto-formatter
provides.

As we're here, also remove test-check-py3-compat.t, as it is currently broken
if `PYTHON3=/bin/python3` is set.

Reviewed By: wez, phillco, simpkins, pkaush, singhsrb

Differential Revision: D8173629

fbshipit-source-id: 90e248ae0c5e6eaadbe25520a6ee42d32005621b
2018-05-25 22:17:29 -07:00

126 lines
4.4 KiB
Python

from __future__ import absolute_import, print_function
from mercurial import dispatch, error, ui as uimod
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("devel", "warn-config-unknown", False, "test")
testui.setconfig("devel", "all-warnings", False, "test")
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")