tests/test-ui-color.py
author Boris Feld <boris.feld@octobus.net>
Tue, 16 Oct 2018 15:48:00 +0200
changeset 41798 8c42b4a3d447
parent 37942 32bc3815efae
child 43076 2372284d9457
permissions -rw-r--r--
strip: introduce a soft strip option This is the first user-accessible way to use the archived phase introduced in 4.8. This implements a feature discussed during the Stockholm sprint, using the archived phase for hiding changesets. The archived phase behaves exactly as stripping: changesets are no longer visible, but pulling/unbundling them will make then reappear. The only notable difference is that unlike hard stripping, soft stripping does not affect obsmarkers. The next changeset will make use of the archived phase for history rewriting command. However, having a way to manually trigger the feature first seems a necessary step before exposing users to this phase; there is a way to un-archived changesets (unbundling), so there must be a way to archive them again. Adding a flag to strip is a good way to provide access to the feature without taking a too big risk on the final UI we want. The flag is experimental so it won't be exposed by default. Using the archived phase is faster and less traumatic for the repository than actually stripping changesets.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28915
40afa22bee9b tests: make test-ui-color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28682
diff changeset
     1
from __future__ import absolute_import, print_function
40afa22bee9b tests: make test-ui-color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28682
diff changeset
     2
19322
ff1586a3adc5 cleanup: remove unused imports
Simon Heimberg <simohe@besonet.ch>
parents: 17956
diff changeset
     3
import os
28915
40afa22bee9b tests: make test-ui-color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28682
diff changeset
     4
from mercurial import (
40afa22bee9b tests: make test-ui-color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28682
diff changeset
     5
    dispatch,
40afa22bee9b tests: make test-ui-color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28682
diff changeset
     6
    ui as uimod,
40afa22bee9b tests: make test-ui-color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents: 28682
diff changeset
     7
)
37925
b8c2004a8d2b tests: port test-ui-color.py to Python 3
Augie Fackler <augie@google.com>
parents: 36337
diff changeset
     8
from mercurial.utils import (
b8c2004a8d2b tests: port test-ui-color.py to Python 3
Augie Fackler <augie@google.com>
parents: 36337
diff changeset
     9
    stringutil,
b8c2004a8d2b tests: port test-ui-color.py to Python 3
Augie Fackler <augie@google.com>
parents: 36337
diff changeset
    10
)
11732
386e56ecfb78 color: call correct superclass method in write_err
Brodie Rao <brodie@bitheap.org>
parents:
diff changeset
    11
386e56ecfb78 color: call correct superclass method in write_err
Brodie Rao <brodie@bitheap.org>
parents:
diff changeset
    12
# ensure errors aren't buffered
31095
b4cb86ab4c71 color: drop the 'colorui' class
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30559
diff changeset
    13
testui = uimod.ui()
11732
386e56ecfb78 color: call correct superclass method in write_err
Brodie Rao <brodie@bitheap.org>
parents:
diff changeset
    14
testui.pushbuffer()
36336
236596a67a54 py3: add b'' to test-ui-color.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31095
diff changeset
    15
testui.write((b'buffered\n'))
236596a67a54 py3: add b'' to test-ui-color.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31095
diff changeset
    16
testui.warn((b'warning\n'))
236596a67a54 py3: add b'' to test-ui-color.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31095
diff changeset
    17
testui.write_err(b'error\n')
37942
32bc3815efae stringutil: flip the default of pprint() to bprefix=False
Yuya Nishihara <yuya@tcha.org>
parents: 37925
diff changeset
    18
print(stringutil.pprint(testui.popbuffer(), bprefix=True).decode('ascii'))
14516
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    19
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    20
# test dispatch.dispatch with the same ui object
36337
0f36926b2651 py3: make sure we open file in bytes mode
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36336
diff changeset
    21
hgrc = open(os.environ["HGRCPATH"], 'wb')
36336
236596a67a54 py3: add b'' to test-ui-color.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31095
diff changeset
    22
hgrc.write(b'[extensions]\n')
236596a67a54 py3: add b'' to test-ui-color.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31095
diff changeset
    23
hgrc.write(b'color=\n')
14516
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    24
hgrc.close()
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    25
30559
d83ca854fa21 ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents: 28915
diff changeset
    26
ui_ = uimod.ui.load()
36336
236596a67a54 py3: add b'' to test-ui-color.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31095
diff changeset
    27
ui_.setconfig(b'ui', b'formatted', b'True')
14516
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    28
14614
afccc64eea73 ui: use I/O descriptors internally
Idan Kamara <idankk86@gmail.com>
parents: 14516
diff changeset
    29
# we're not interested in the output, so write that to devnull
36337
0f36926b2651 py3: make sure we open file in bytes mode
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36336
diff changeset
    30
ui_.fout = open(os.devnull, 'wb')
14614
afccc64eea73 ui: use I/O descriptors internally
Idan Kamara <idankk86@gmail.com>
parents: 14516
diff changeset
    31
14516
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    32
# call some arbitrary command just so we go through
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    33
# color's wrapped _runcommand twice.
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    34
def runcmd():
36336
236596a67a54 py3: add b'' to test-ui-color.py
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31095
diff changeset
    35
    dispatch.dispatch(dispatch.request([b'version', b'-q'], ui_))
14516
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    36
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    37
runcmd()
31095
b4cb86ab4c71 color: drop the 'colorui' class
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30559
diff changeset
    38
print("colored? %s" % (ui_._colormode is not None))
14516
842a9179132c color: check if ui is already a subclass of colorui before wrapping it
Idan Kamara <idankk86@gmail.com>
parents: 12865
diff changeset
    39
runcmd()
31095
b4cb86ab4c71 color: drop the 'colorui' class
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 30559
diff changeset
    40
print("colored? %s" % (ui_._colormode is not None))