Mercurial > hg
annotate tests/printenv.py @ 49836:3d7bf111f01e stable
packaging: add dependencies to the PyOxidizer build on macOS
Otherwise, we get a bunch of test failures for missing things like pygments, or
tests skipped entirely. The input file is a copy/paste from the equivalent
Windows file, but with dulwich, pygit2, and pytest-vcr commented out because
the build process errors out with them, flagging them as incompatible with
loading from memory. I have no idea if that's actually true or not, because
I've noticed that if I don't `make clean` after every build, the next build
flags the watchman stuff as incompatible with loading from memory.
The remaining failures are:
Failed test-alias.t: output changed
Failed test-basic.t: output changed
Failed test-check-help.t: output changed
Failed test-commit-interactive.t: output changed
Failed test-extension.t: output changed
Failed test-help.t: output changed
Failed test-i18n.t: output changed
Failed test-log.t: output changed
Failed test-qrecord.t: output changed
Failed test-share-safe.t: output changed
Most of the issues seem related to loading help for disabled extensions from
`hgext.__index__`, namely the full extension help being unavailable, not being
able to resolve what commands are provided by what extension, and not having the
command level help available.
test-log.t, test-commit-interactive.t, and test-i18n.t look like i18n (or lack
thereof) issues.
test-basic.t is just odd:
@@ -55,7 +55,7 @@
On Python 3, stdio may be None:
$ hg debuguiprompt --config ui.interactive=true 0<&-
- abort: Bad file descriptor (no-rhg !)
+ abort: response expected
abort: response expected (rhg !)
[255]
$ hg version -q 0<&-
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 06 Dec 2022 17:12:59 -0500 |
parents | 6000f5b25c9b |
children |
rev | line source |
---|---|
45830
c102b704edb5
global: use python3 in shebangs
Gregory Szorc <gregory.szorc@gmail.com>
parents:
43076
diff
changeset
|
1 #!/usr/bin/env python3 |
25477
a372f7b4463b
tests: make printenv executable
Matt Mackall <mpm@selenic.com>
parents:
17018
diff
changeset
|
2 # |
4285
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
3 # simple script to be used in hooks |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
4 # |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
5 # put something like this in the repo .hg/hgrc: |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
6 # |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
7 # [hooks] |
17018
e7fdfc702d9f
tests: consistently use printenv.py the same MSYS/Windows-compatible way
Mads Kiilerich <mads@kiilerich.com>
parents:
16982
diff
changeset
|
8 # changegroup = python "$TESTDIR/printenv.py" <hookname> [exit] [output] |
4285
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
9 # |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
10 # - <hookname> is a mandatory argument (e.g. "changegroup") |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
11 # - [exit] is the exit code of the hook (default: 0) |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
12 # - [output] is the name of the output file (default: use sys.stdout) |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
13 # the file will be opened in append mode. |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
14 # |
41025
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
15 import argparse |
4285
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
16 import os |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
17 import sys |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
18 |
7080
a6477aa893b8
tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents:
4659
diff
changeset
|
19 try: |
a6477aa893b8
tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents:
4659
diff
changeset
|
20 import msvcrt |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41036
diff
changeset
|
21 |
7080
a6477aa893b8
tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents:
4659
diff
changeset
|
22 msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY) |
a6477aa893b8
tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents:
4659
diff
changeset
|
23 msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) |
7186
f77c8d8331ca
clean up trailing spaces, leading spaces in C
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
7080
diff
changeset
|
24 msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) |
7080
a6477aa893b8
tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents:
4659
diff
changeset
|
25 except ImportError: |
a6477aa893b8
tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents:
4659
diff
changeset
|
26 pass |
a6477aa893b8
tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents:
4659
diff
changeset
|
27 |
41025
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
28 parser = argparse.ArgumentParser() |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
29 parser.add_argument("name", help="the hook name, used for display") |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
30 parser.add_argument( |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
31 "exitcode", |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
32 nargs="?", |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
33 default=0, |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
34 type=int, |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
35 help="the exit code for the hook", |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
36 ) |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
37 parser.add_argument( |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
38 "out", nargs="?", default=None, help="where to write the output" |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
39 ) |
41036
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
40 parser.add_argument( |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
41 "--line", |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
42 action="store_true", |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
43 help="print environment variables one per line instead of on a single line", |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
44 ) |
41025
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
45 args = parser.parse_args() |
4285
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
46 |
41025
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
47 if args.out is None: |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
48 out = sys.stdout |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
49 out = getattr(out, "buffer", out) |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
50 else: |
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
51 out = open(args.out, "ab") |
4285
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
52 |
4643
a39cec1d5cb8
printenv: filter empty environment variables for portability.
Patrick Mezard <pmezard@gmail.com>
parents:
4285
diff
changeset
|
53 # variables with empty values may not exist on all platforms, filter |
a39cec1d5cb8
printenv: filter empty environment variables for portability.
Patrick Mezard <pmezard@gmail.com>
parents:
4285
diff
changeset
|
54 # them now for portability sake. |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41036
diff
changeset
|
55 env = [(k, v) for k, v in os.environ.items() if k.startswith("HG_") and v] |
4285
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
56 env.sort() |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
57 |
41025
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
58 out.write(b"%s hook: " % args.name.encode('ascii')) |
16982
9c892c830a72
tests/printenv.py: eliminate trailing spaces on output
Adrian Buehlmann <adrian@cadifra.com>
parents:
16963
diff
changeset
|
59 if os.name == 'nt': |
9c892c830a72
tests/printenv.py: eliminate trailing spaces on output
Adrian Buehlmann <adrian@cadifra.com>
parents:
16963
diff
changeset
|
60 filter = lambda x: x.replace('\\', '/') |
9c892c830a72
tests/printenv.py: eliminate trailing spaces on output
Adrian Buehlmann <adrian@cadifra.com>
parents:
16963
diff
changeset
|
61 else: |
9c892c830a72
tests/printenv.py: eliminate trailing spaces on output
Adrian Buehlmann <adrian@cadifra.com>
parents:
16963
diff
changeset
|
62 filter = lambda x: x |
41036
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
63 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41036
diff
changeset
|
64 vars = [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41036
diff
changeset
|
65 b"%s=%s" % (k.encode('ascii'), filter(v).encode('ascii')) for k, v in env |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41036
diff
changeset
|
66 ] |
41036
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
67 |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
68 # Print variables on out |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
69 if not args.line: |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
70 out.write(b" ".join(vars)) |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
71 else: |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
72 for var in vars: |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
73 out.write(var) |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
74 out.write(b"\n") |
73da729ccfef
test: introduce a new flag to display env variable line per line
Boris Feld <boris.feld@octobus.net>
parents:
41025
diff
changeset
|
75 |
38111
bacbe829c2bf
py3: use bytes in tests/printenv.py
Pulkit Goyal <7895pulkit@gmail.com>
parents:
36254
diff
changeset
|
76 out.write(b"\n") |
4285
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
77 out.close() |
4fd6f7e60894
Add tests/printenv.py
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
78 |
41025
3c5aaea9638f
tests: update printenv.py argument parsing
Boris Feld <boris.feld@octobus.net>
parents:
38296
diff
changeset
|
79 sys.exit(args.exitcode) |