tests/test-duplicateoptions.py
author Pulkit Goyal <7895pulkit@gmail.com>
Fri, 22 Dec 2017 17:57:11 +0530
changeset 35492 3ad582b2895c
parent 33723 5b2f331d0a33
child 38340 9abe91a503da
permissions -rw-r--r--
repoview: add visibilityexceptions as an optional argument to repo.filtered() This will help us in having an API where we can pass the filtername and the visibilityexceptions to get a new repo object. Visibility exceptions are the revs which must be visible even they should in theory belong to the hidden set. They are required as there has been desire to have a functionality to access hidden changesets using certain commands without passing --hidden. After this patch we can make those changesets visibility exceptions so that we can access them without requiring a unfiltered repo. Differential Revision: https://phab.mercurial-scm.org/D1746
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
33723
5b2f331d0a33 tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents: 32291
diff changeset
     9
ignore = {b'highlight', b'win32text', b'factotum'}
14449
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    10
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    11
if os.name != 'nt':
33723
5b2f331d0a33 tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents: 32291
diff changeset
    12
    ignore.add(b'win32mbcs')
14449
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    13
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    14
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
    15
33723
5b2f331d0a33 tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents: 32291
diff changeset
    16
hgrc = open(os.environ["HGRCPATH"], 'wb')
5b2f331d0a33 tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents: 32291
diff changeset
    17
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
    18
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    19
for ext in disabled:
33723
5b2f331d0a33 tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents: 32291
diff changeset
    20
    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
    21
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    22
hgrc.close()
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    23
30559
d83ca854fa21 ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents: 28804
diff changeset
    24
u = uimod.ui.load()
14449
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    25
extensions.loadall(u)
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    26
15099
b1f49efeab65 test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents: 14762
diff changeset
    27
globalshort = set()
b1f49efeab65 test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents: 14762
diff changeset
    28
globallong = set()
b1f49efeab65 test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents: 14762
diff changeset
    29
for option in commands.globalopts:
b1f49efeab65 test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents: 14762
diff changeset
    30
    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
    31
    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
    32
33723
5b2f331d0a33 tests: update duplicateoptions test to use bytestrings everywhere
Augie Fackler <augie@google.com>
parents: 32291
diff changeset
    33
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
    34
    seenshort = globalshort.copy()
b1f49efeab65 test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch>
parents: 14762
diff changeset
    35
    seenlong = globallong.copy()
14449
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    36
    for option in entry[1]:
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    37
        if (option[0] and option[0] in seenshort) or \
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    38
           (option[1] and option[1] in seenlong):
28740
e8ecd1aa3f6c py3: use print_function in test-duplicateoptions.py
Robert Stanca <robert.stanca7@gmail.com>
parents: 28739
diff changeset
    39
            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
    40
        seenshort.add(option[0])
7d171c05a631 tests: add a test to check for duplicate command options
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
    41
        seenlong.add(option[1])