Mercurial > hg
annotate tests/test-duplicateoptions.py @ 47783:085ebc80f84b stable
clone: test local clone in `test-clone-uncompressed.t` too
This is not an uncompressed test but needs to be tested in the same kind of
constraints regarding special file name.
Differential Revision: https://phab.mercurial-scm.org/D11218
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 27 Jul 2021 19:16:30 +0200 |
parents | 2372284d9457 |
children | 6000f5b25c9b |
rev | line source |
---|---|
28740
e8ecd1aa3f6c
py3: use print_function in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28739
diff
changeset
|
1 from __future__ import absolute_import, print_function |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
2 import os |
28739
d289b8847f23
py3: use absolute_import in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
20622
diff
changeset
|
3 from mercurial import ( |
d289b8847f23
py3: use absolute_import in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
20622
diff
changeset
|
4 commands, |
d289b8847f23
py3: use absolute_import in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
20622
diff
changeset
|
5 extensions, |
28804
ce49c8d4f0bb
test-duplicateoptions: alias ui as uimod
Yuya Nishihara <yuya@tcha.org>
parents:
28740
diff
changeset
|
6 ui as uimod, |
28739
d289b8847f23
py3: use absolute_import in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
20622
diff
changeset
|
7 ) |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
8 |
38340
9abe91a503da
graph: improve graph output by using Unicode characters
John Stiles <johnstiles@gmail.com>
parents:
33723
diff
changeset
|
9 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
|
10 |
40363
c3ad9ef0876c
tests: don't emit false failures when sqlite3 is missing
Augie Fackler <augie@google.com>
parents:
38340
diff
changeset
|
11 try: |
c3ad9ef0876c
tests: don't emit false failures when sqlite3 is missing
Augie Fackler <augie@google.com>
parents:
38340
diff
changeset
|
12 import sqlite3 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41759
diff
changeset
|
13 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41759
diff
changeset
|
14 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:
38340
diff
changeset
|
15 except ImportError: |
c3ad9ef0876c
tests: don't emit false failures when sqlite3 is missing
Augie Fackler <augie@google.com>
parents:
38340
diff
changeset
|
16 ignore.add(b'sqlitestore') |
c3ad9ef0876c
tests: don't emit false failures when sqlite3 is missing
Augie Fackler <augie@google.com>
parents:
38340
diff
changeset
|
17 |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
18 if os.name != 'nt': |
33723
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32291
diff
changeset
|
19 ignore.add(b'win32mbcs') |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
20 |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
21 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
|
22 |
33723
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32291
diff
changeset
|
23 hgrc = open(os.environ["HGRCPATH"], 'wb') |
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32291
diff
changeset
|
24 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
|
25 |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
26 for ext in disabled: |
33723
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32291
diff
changeset
|
27 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
|
28 |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
29 hgrc.close() |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
30 |
30559
d83ca854fa21
ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents:
28804
diff
changeset
|
31 u = uimod.ui.load() |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
32 extensions.loadall(u) |
40729
c93d046d4300
extensions: add "uipopulate" hook, called per instance, not per process
Yuya Nishihara <yuya@tcha.org>
parents:
40376
diff
changeset
|
33 extensions.populateui(u) |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
34 |
15099
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
35 globalshort = set() |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
36 globallong = set() |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
37 for option in commands.globalopts: |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
38 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
|
39 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
|
40 |
33723
5b2f331d0a33
tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents:
32291
diff
changeset
|
41 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
|
42 seenshort = globalshort.copy() |
b1f49efeab65
test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents:
14762
diff
changeset
|
43 seenlong = globallong.copy() |
14449
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
44 for option in entry[1]: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41759
diff
changeset
|
45 if (option[0] and option[0] in seenshort) or ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41759
diff
changeset
|
46 option[1] and option[1] in seenlong |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41759
diff
changeset
|
47 ): |
28740
e8ecd1aa3f6c
py3: use print_function in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28739
diff
changeset
|
48 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
|
49 seenshort.add(option[0]) |
7d171c05a631
tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
50 seenlong.add(option[1]) |