##// END OF EJS Templates
win32: work around a WinError problem handling HRESULT types...
win32: work around a WinError problem handling HRESULT types I ran into this ctypes bug while working with the Crypto API. While this could be an issue with any Win32 API in theory, the handful of things that we call are older functions that are unlikely to return COM errors, so I didn't retrofit this everywhere.

File last commit:

r33414:16ed6716 default
r33419:7c33adc8 default
Show More
test-paths.t
222 lines | 5.0 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-paths
r11785 $ hg init a
$ hg clone a b
updating to branch default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd a
Yuya Nishihara
paths: use single loop for both search=None|pattern cases...
r27726
with no paths:
$ hg paths
$ hg paths unknown
not found!
[1]
Yuya Nishihara
paths: port to generic templater...
r27728 $ hg paths -Tjson
[
]
Yuya Nishihara
paths: use single loop for both search=None|pattern cases...
r27726
with paths:
Nicolas Dumazet
tests: unify test-paths
r11785 $ echo '[paths]' >> .hg/hgrc
Yuya Nishihara
paths: include #fragment again...
r27320 $ echo 'dupe = ../b#tip' >> .hg/hgrc
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 $ echo 'expand = $SOMETHING/bar' >> .hg/hgrc
Nicolas Dumazet
tests: unify test-paths
r11785 $ hg in dupe
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 comparing with $TESTTMP/b (glob)
Nicolas Dumazet
tests: unify test-paths
r11785 no changes found
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Nicolas Dumazet
tests: unify test-paths
r11785 $ cd ..
$ hg -R a in dupe
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 comparing with $TESTTMP/b (glob)
Nicolas Dumazet
tests: unify test-paths
r11785 no changes found
Matt Mackall
tests: add exit codes to unified tests
r12316 [1]
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 $ cd a
$ hg paths
Yuya Nishihara
paths: include #fragment again...
r27320 dupe = $TESTTMP/b#tip (glob)
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 expand = $TESTTMP/a/$SOMETHING/bar (glob)
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 $ SOMETHING=foo hg paths
Yuya Nishihara
paths: include #fragment again...
r27320 dupe = $TESTTMP/b#tip (glob)
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 expand = $TESTTMP/a/foo/bar (glob)
Adrian Buehlmann
test-paths.t: enable for Windows using #if...
r16843 #if msys
$ SOMETHING=//foo hg paths
Yuya Nishihara
paths: include #fragment again...
r27320 dupe = $TESTTMP/b#tip (glob)
Adrian Buehlmann
test-paths.t: enable for Windows using #if...
r16843 expand = /foo/bar
#else
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 $ SOMETHING=/foo hg paths
Yuya Nishihara
paths: include #fragment again...
r27320 dupe = $TESTTMP/b#tip (glob)
Benoit Boissinot
ui.paths: expand paths directly in fixconfig (issue2373)...
r12662 expand = /foo/bar
Adrian Buehlmann
test-paths.t: enable for Windows using #if...
r16843 #endif
Thomas Arendsen Hein
paths: Add support for -q/--quiet...
r14331 $ hg paths -q
dupe
expand
$ hg paths dupe
Yuya Nishihara
paths: include #fragment again...
r27320 $TESTTMP/b#tip (glob)
Thomas Arendsen Hein
paths: Add support for -q/--quiet...
r14331 $ hg paths -q dupe
$ hg paths unknown
not found!
[1]
$ hg paths -q unknown
[1]
Yuya Nishihara
paths: port to generic templater...
r27728
formatter output with paths:
$ echo 'dupe:pushurl = https://example.com/dupe' >> .hg/hgrc
Matt Harbison
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 $ hg paths -Tjson | sed 's|\\\\|\\|g'
Yuya Nishihara
paths: port to generic templater...
r27728 [
{
"name": "dupe",
"pushurl": "https://example.com/dupe",
Matt Harbison
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 "url": "$TESTTMP/b#tip" (glob)
Yuya Nishihara
paths: port to generic templater...
r27728 },
{
"name": "expand",
Matt Harbison
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 "url": "$TESTTMP/a/$SOMETHING/bar" (glob)
Yuya Nishihara
paths: port to generic templater...
r27728 }
]
Matt Harbison
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 $ hg paths -Tjson dupe | sed 's|\\\\|\\|g'
Yuya Nishihara
paths: port to generic templater...
r27728 [
{
"name": "dupe",
"pushurl": "https://example.com/dupe",
Matt Harbison
test-paths: fix up json output to match $TESTTMP on Windows...
r28173 "url": "$TESTTMP/b#tip" (glob)
Yuya Nishihara
paths: port to generic templater...
r27728 }
]
$ hg paths -Tjson -q unknown
[
]
[1]
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414 log template:
(behaves as a {name: path-string} dict by default)
$ hg log -rnull -T '{peerpaths}\n'
dupe=$TESTTMP/b#tip expand=$TESTTMP/a/$SOMETHING/bar (glob)
$ hg log -rnull -T '{join(peerpaths, "\n")}\n'
dupe=$TESTTMP/b#tip (glob)
expand=$TESTTMP/a/$SOMETHING/bar (glob)
$ hg log -rnull -T '{peerpaths % "{name}: {path}\n"}'
dupe: $TESTTMP/a/$SOMETHING/bar (glob)
expand: $TESTTMP/a/$SOMETHING/bar (glob)
$ hg log -rnull -T '{get(peerpaths, "dupe")}\n'
$TESTTMP/a/$SOMETHING/bar (glob)
(but a path is actually a dict of url and sub-options)
$ hg log -rnull -T '{join(get(peerpaths, "dupe"), "\n")}\n'
url=$TESTTMP/b#tip (glob)
pushurl=https://example.com/dupe
$ hg log -rnull -T '{get(peerpaths, "dupe") % "{key}: {value}\n"}'
url: $TESTTMP/b#tip (glob)
pushurl: https://example.com/dupe
$ hg log -rnull -T '{get(get(peerpaths, "dupe"), "pushurl")}\n'
https://example.com/dupe
(so there's weird behavior)
$ hg log -rnull -T '{get(peerpaths, "dupe")|count}\n'
2
$ hg log -rnull -T '{get(peerpaths, "dupe")|stringify|count}\n'
[0-9]{2,} (re)
(in JSON, it's a dict of dicts)
$ hg log -rnull -T '{peerpaths|json}\n'
{"dupe": {"pushurl": "https://example.com/dupe", "url": "$TESTTMP/b#tip"}, "expand": {"url": "$TESTTMP/a/$SOMETHING/bar"}} (glob)
password should be masked in plain output, but not in machine-readable/template
output:
Yuya Nishihara
paths: port to generic templater...
r27728
$ echo 'insecure = http://foo:insecure@example.com/' >> .hg/hgrc
$ hg paths insecure
http://foo:***@example.com/
$ hg paths -Tjson insecure
[
{
"name": "insecure",
"url": "http://foo:insecure@example.com/"
}
]
Yuya Nishihara
templatekw: export ui.paths as {peerpaths}...
r33414 $ hg log -rnull -T '{get(peerpaths, "insecure")}\n'
http://foo:insecure@example.com/
Yuya Nishihara
paths: port to generic templater...
r27728
Yuya Nishihara
zeroconf: forward all arguments passed to ui.configitems() wrapper...
r28038 zeroconf wraps ui.configitems(), which shouldn't crash at least:
$ hg paths --config extensions.zeroconf=
dupe = $TESTTMP/b#tip (glob)
dupe:pushurl = https://example.com/dupe
expand = $TESTTMP/a/$SOMETHING/bar (glob)
insecure = http://foo:***@example.com/
Adrian Buehlmann
test-paths.t: 'file:' disables [paths] entries for clone dest
r13797 $ cd ..
Gregory Szorc
ui: support declaring path push urls as sub-options...
r27266 sub-options for an undeclared path are ignored
$ hg init suboptions
$ cd suboptions
$ cat > .hg/hgrc << EOF
> [paths]
> path0 = https://example.com/path0
> path1:pushurl = https://example.com/path1
> EOF
$ hg paths
path0 = https://example.com/path0
unknown sub-options aren't displayed
$ cat > .hg/hgrc << EOF
> [paths]
> path0 = https://example.com/path0
> path0:foo = https://example.com/path1
> EOF
$ hg paths
path0 = https://example.com/path0
:pushurl must be a URL
$ cat > .hg/hgrc << EOF
> [paths]
> default = /path/to/nothing
> default:pushurl = /not/a/url
> EOF
$ hg paths
(paths.default:pushurl not a URL; ignoring)
default = /path/to/nothing
#fragment is not allowed in :pushurl
$ cat > .hg/hgrc << EOF
> [paths]
> default = https://example.com/repo
> invalid = https://example.com/repo
> invalid:pushurl = https://example.com/repo#branch
> EOF
$ hg paths
("#fragment" in paths.invalid:pushurl not supported; ignoring)
default = https://example.com/repo
invalid = https://example.com/repo
invalid:pushurl = https://example.com/repo
$ cd ..
Adrian Buehlmann
test-paths.t: 'file:' disables [paths] entries for clone dest
r13797 'file:' disables [paths] entries for clone destination
$ cat >> $HGRCPATH <<EOF
> [paths]
> gpath1 = http://hg.example.com
> EOF
$ hg clone a gpath1
abort: cannot create new http repository
[255]
$ hg clone a file:gpath1
updating to branch default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd gpath1
$ hg -q id
000000000000
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..