Mercurial > public > mercurial-scm > hg-stable
annotate tests/test-duplicateoptions.py @ 50248:af9d050f2bb8
rust: box ConfigValueParseError to avoid large result types
clippy emits a warning that all the Result types are way too large
because of HgError includes ConfigValueParseError as one of the variants,
so its size is 136 bytes.
By boxing ConfigValueParseError we're hopefully making everything faster
"for free".
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Mon, 27 Feb 2023 18:24:29 +0000 |
parents | 6000f5b25c9b |
children | e6069f84abbb |
rev | line source |
---|---|
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
1 import os |
28739
d289b8847f23
py3: use absolute_import in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
20622
diff
changeset
|
2 from mercurial import ( |
d289b8847f23
py3: use absolute_import in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
20622
diff
changeset
|
3 commands, |
d289b8847f23
py3: use absolute_import in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
20622
diff
changeset
|
4 extensions, |
28804
ce49c8d4f0bb
test-duplicateoptions: alias ui as uimod
Yuya Nishihara <yuya@tcha.org>
parents:
28740
diff
changeset
|
5 ui as uimod, |
28739
d289b8847f23
py3: use absolute_import in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
20622
diff
changeset
|
6 ) |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
7 |
38346
9abe91a503da
graph: improve graph output by using Unicode characters
John Stiles <johnstiles@gmail.com>
parents:
33749
diff
changeset
|
8 ignore = {b'highlight', b'win32text', b'factotum', b'beautifygraph'} |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
9 |
40363
c3ad9ef0876c
tests: don't emit false failures when sqlite3 is missing
Augie Fackler <augie@google.com>
parents:
38346
diff
changeset
|
10 try: |
c3ad9ef0876c
tests: don't emit false failures when sqlite3 is missing
Augie Fackler <augie@google.com>
parents:
38346
diff
changeset
|
11 import sqlite3 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41768
diff
changeset
|
12 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41768
diff
changeset
|
13 del sqlite3 # unused, just checking that import works |
40363
c3ad9ef0876c
tests: don't emit false failures when sqlite3 is missing
Augie Fackler <augie@google.com>
parents:
38346
diff
changeset
|
14 except ImportError: |
c3ad9ef0876c
tests: don't emit false failures when sqlite3 is missing
Augie Fackler <augie@google.com>
parents:
38346
diff
changeset
|
15 ignore.add(b'sqlitestore') |
c3ad9ef0876c
tests: don't emit false failures when sqlite3 is missing
Augie Fackler <augie@google.com>
parents:
38346
diff
changeset
|
16 |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
17 if os.name != 'nt': |
33749
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32331
diff
changeset
|
18 ignore.add(b'win32mbcs') |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
19 |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
20 disabled = [ext for ext in extensions.disabled().keys() if ext not in ignore] |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
21 |
33749
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32331
diff
changeset
|
22 hgrc = open(os.environ["HGRCPATH"], 'wb') |
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32331
diff
changeset
|
23 hgrc.write(b'[extensions]\n') |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
24 |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
25 for ext in disabled: |
33749
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32331
diff
changeset
|
26 hgrc.write(ext + b'=\n') |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
27 |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
28 hgrc.close() |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
29 |
30564
d83ca854fa21
ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents:
28804
diff
changeset
|
30 u = uimod.ui.load() |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
31 extensions.loadall(u) |
40763
c93d046d4300
extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents:
40376
diff
changeset
|
32 extensions.populateui(u) |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
33 |
15099
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
34 globalshort = set() |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
35 globallong = set() |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
36 for option in commands.globalopts: |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
37 option[0] and globalshort.add(option[0]) |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
38 option[1] and globallong.add(option[1]) |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
39 |
33749
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32331
diff
changeset
|
40 for cmd, entry in commands.table.items(): |
15099
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
41 seenshort = globalshort.copy() |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
42 seenlong = globallong.copy() |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
43 for option in entry[1]: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41768
diff
changeset
|
44 if (option[0] and option[0] in seenshort) or ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41768
diff
changeset
|
45 option[1] and option[1] in seenlong |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41768
diff
changeset
|
46 ): |
28740
e8ecd1aa3f6c
py3: use print_function in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28739
diff
changeset
|
47 print("command '" + cmd + "' has duplicate option " + str(option)) |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
48 seenshort.add(option[0]) |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
49 seenlong.add(option[1]) |