tests/test-py3-commands.t
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 14 Mar 2018 16:53:30 -0700
changeset 37058 c5e9c3b47366
parent 33093 7fed389f9a9f
child 38027 1b8238f67bf2
permissions -rw-r--r--
wireproto: support for receiving multiple requests Now that we have request IDs on each frame and a specification that allows multiple requests to be issued simultaneously, possibly interleaved, let's teach the server to deal with that. Instead of tracking the state for *the* active command request, we instead track the state of each receiving command by its request ID. The multiple states in our state machine for processing each command's state has been collapsed into a single state for "receiving commands." Tests have been added so our branch coverage covers all meaningful branches. However, we did lose some logical coverage. The implementation of this new feature opens up the door to a server having partial command requests when end of input is reached. We will probably want a mechanism to deal with partial requests. For now, I've tracked that as a known issue in the class docstring. I've also noted an abuse vector that becomes a little bit easier to exploit with this feature. Differential Revision: https://phab.mercurial-scm.org/D2870
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30129
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     1
#require py3exe
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     2
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     3
This test helps in keeping a track on which commands we can run on
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     4
Python 3 and see what kind of errors are coming up.
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     5
The full traceback is hidden to have a stable output.
31376
3690c75f4d1e tests: make a variable for hg binary location in test-check-py3-commands
Augie Fackler <augie@google.com>
parents: 31361
diff changeset
     6
  $ HGBIN=`which hg`
30129
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     7
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     8
  $ for cmd in version debuginstall ; do
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
     9
  >   echo $cmd
31376
3690c75f4d1e tests: make a variable for hg binary location in test-check-py3-commands
Augie Fackler <augie@google.com>
parents: 31361
diff changeset
    10
  >   $PYTHON3 $HGBIN $cmd 2>&1 2>&1 | tail -1
30129
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    11
  > done
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    12
  version
30586
2d555d753f0e py3: make keys of keyword arguments strings
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30569
diff changeset
    13
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
30129
d69d86e7d6c8 py3: test to check which commands run
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
    14
  debuginstall
31308
62939e0148f1 policy: try and always have a bytes for module policy
Augie Fackler <raf@durin42.com>
parents: 31304
diff changeset
    15
  no problems detected
31304
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    16
31377
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    17
#if test-repo
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    18
Make a clone so that any features in the developer's .hg/hgrc that
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    19
might confuse Python 3 don't break this test. When we can do commit in
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    20
Python 3, we'll stop doing this. We use e76ed1e480ef for the clone
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    21
because it has different files than 273ce12ad8f1, so we can test both
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    22
`files` from dirstate and `files` loaded from a specific revision.
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    23
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    24
  $ hg clone -r e76ed1e480ef "`dirname "$TESTDIR"`" testrepo 2>&1 | tail -1
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    25
  15 files updated, 0 files merged, 0 files removed, 0 files unresolved
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    26
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    27
Test using -R, which exercises some URL code:
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    28
  $ $PYTHON3 $HGBIN -R testrepo files -r 273ce12ad8f1 | tail -1
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    29
  testrepo/tkmerge
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    30
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    31
Now prove `hg files` is reading the whole manifest. We have to grep
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    32
out some potential warnings that come from hgrc as yet.
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    33
  $ cd testrepo
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    34
  $ $PYTHON3 $HGBIN files -r 273ce12ad8f1
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    35
  .hgignore
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    36
  PKG-INFO
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    37
  README
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    38
  hg
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    39
  mercurial/__init__.py
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    40
  mercurial/byterange.py
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    41
  mercurial/fancyopts.py
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    42
  mercurial/hg.py
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    43
  mercurial/mdiff.py
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    44
  mercurial/revlog.py
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    45
  mercurial/transaction.py
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    46
  notes.txt
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    47
  setup.py
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    48
  tkmerge
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    49
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    50
  $ $PYTHON3 $HGBIN files -r 273ce12ad8f1 | wc -l
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    51
  \s*14 (re)
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    52
  $ $PYTHON3 $HGBIN files | wc -l
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    53
  \s*15 (re)
31450
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    54
31487
a992caaf0e22 py3: convert log opts to bytes-key dict
Yuya Nishihara <yuya@tcha.org>
parents: 31450
diff changeset
    55
Test if log-like commands work:
31450
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    56
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    57
  $ $PYTHON3 $HGBIN tip
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    58
  changeset:   10:e76ed1e480ef
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    59
  tag:         tip
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    60
  user:        oxymoron@cinder.waste.org
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    61
  date:        Tue May 03 23:37:43 2005 -0800
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    62
  summary:     Fix linking of changeset revs when merging
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    63
  
b3b4c487707c py3: prove hg tip works
Yuya Nishihara <yuya@tcha.org>
parents: 31401
diff changeset
    64
31487
a992caaf0e22 py3: convert log opts to bytes-key dict
Yuya Nishihara <yuya@tcha.org>
parents: 31450
diff changeset
    65
  $ $PYTHON3 $HGBIN log -r0
a992caaf0e22 py3: convert log opts to bytes-key dict
Yuya Nishihara <yuya@tcha.org>
parents: 31450
diff changeset
    66
  changeset:   0:9117c6561b0b
a992caaf0e22 py3: convert log opts to bytes-key dict
Yuya Nishihara <yuya@tcha.org>
parents: 31450
diff changeset
    67
  user:        mpm@selenic.com
a992caaf0e22 py3: convert log opts to bytes-key dict
Yuya Nishihara <yuya@tcha.org>
parents: 31450
diff changeset
    68
  date:        Tue May 03 13:16:10 2005 -0800
a992caaf0e22 py3: convert log opts to bytes-key dict
Yuya Nishihara <yuya@tcha.org>
parents: 31450
diff changeset
    69
  summary:     Add back links from file revisions to changeset revisions
a992caaf0e22 py3: convert log opts to bytes-key dict
Yuya Nishihara <yuya@tcha.org>
parents: 31450
diff changeset
    70
  
a992caaf0e22 py3: convert log opts to bytes-key dict
Yuya Nishihara <yuya@tcha.org>
parents: 31450
diff changeset
    71
31377
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    72
  $ cd ..
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    73
#endif
52ee1b5ac277 py3: prove `hg files --rev` works
Augie Fackler <augie@google.com>
parents: 31376
diff changeset
    74
31522
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    75
Test if `hg config` works:
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    76
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    77
  $ $PYTHON3 $HGBIN config
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    78
  devel.all-warnings=true
32520
dc0da9829c29 py3: update test expectations for py3-commands test
Augie Fackler <raf@durin42.com>
parents: 32163
diff changeset
    79
  devel.default-date=0 0
31522
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    80
  largefiles.usercache=$TESTTMP/.cache/largefiles
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    81
  ui.slash=True
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    82
  ui.interactive=False
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    83
  ui.mergemarkers=detailed
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    84
  ui.promptecho=True
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    85
  web.address=localhost
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    86
  web.ipv6=False
23fc9b98445f py3: prove hg config works
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 31487
diff changeset
    87
31304
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    88
  $ cat > included-hgrc <<EOF
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    89
  > [extensions]
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    90
  > babar = imaginary_elephant
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    91
  > EOF
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    92
  $ cat >> $HGRCPATH <<EOF
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    93
  > %include $TESTTMP/included-hgrc
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    94
  > EOF
31376
3690c75f4d1e tests: make a variable for hg binary location in test-check-py3-commands
Augie Fackler <augie@google.com>
parents: 31361
diff changeset
    95
  $ $PYTHON3 $HGBIN version | tail -1
31304
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    96
  *** failed to import extension babar from imaginary_elephant: *: 'imaginary_elephant' (glob)
dab92f3dbd98 py3: add a test that proves %include and missing-extension code works
Augie Fackler <raf@durin42.com>
parents: 30586
diff changeset
    97
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
31361
8a17c541177f py3: add "b" prefix to string literals related to module policy
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 31308
diff changeset
    98
31398
d785fed7c115 tests: clean up bad extension
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31377
diff changeset
    99
  $ rm included-hgrc
d785fed7c115 tests: clean up bad extension
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31377
diff changeset
   100
  $ touch included-hgrc
d785fed7c115 tests: clean up bad extension
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31377
diff changeset
   101
31361
8a17c541177f py3: add "b" prefix to string literals related to module policy
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 31308
diff changeset
   102
Test bytes-ness of policy.policy with HGMODULEPOLICY
8a17c541177f py3: add "b" prefix to string literals related to module policy
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 31308
diff changeset
   103
8a17c541177f py3: add "b" prefix to string literals related to module policy
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 31308
diff changeset
   104
  $ HGMODULEPOLICY=py
8a17c541177f py3: add "b" prefix to string literals related to module policy
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 31308
diff changeset
   105
  $ export HGMODULEPOLICY
8a17c541177f py3: add "b" prefix to string literals related to module policy
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 31308
diff changeset
   106
  $ $PYTHON3 `which hg` debuginstall 2>&1 2>&1 | tail -1
8a17c541177f py3: add "b" prefix to string literals related to module policy
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 31308
diff changeset
   107
  no problems detected
31401
ed23f929af38 tests: prove that `hg init` works with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31398
diff changeset
   108
ed23f929af38 tests: prove that `hg init` works with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31398
diff changeset
   109
`hg init` can create empty repos
31632
d059821fc89f test-check-py3-commands: cleanup tests related to `hg status`
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31607
diff changeset
   110
`hg status works fine`
31717
62676bb8d534 tests: add check to make sure summary works on Python 2
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31651
diff changeset
   111
`hg summary` also works!
31401
ed23f929af38 tests: prove that `hg init` works with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31398
diff changeset
   112
31607
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   113
  $ $PYTHON3 `which hg` init py3repo
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   114
  $ cd py3repo
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   115
  $ echo "This is the file 'iota'." > iota
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   116
  $ $PYTHON3 $HGBIN status
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   117
  ? iota
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   118
  $ $PYTHON3 $HGBIN add iota
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   119
  $ $PYTHON3 $HGBIN status
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   120
  A iota
32644
01a95cbbff56 py3: add a test to show `hg diff` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32616
diff changeset
   121
  $ hg diff --nodates --git
01a95cbbff56 py3: add a test to show `hg diff` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32616
diff changeset
   122
  diff --git a/iota b/iota
01a95cbbff56 py3: add a test to show `hg diff` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32616
diff changeset
   123
  new file mode 100644
01a95cbbff56 py3: add a test to show `hg diff` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32616
diff changeset
   124
  --- /dev/null
01a95cbbff56 py3: add a test to show `hg diff` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32616
diff changeset
   125
  +++ b/iota
01a95cbbff56 py3: add a test to show `hg diff` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32616
diff changeset
   126
  @@ -0,0 +1,1 @@
01a95cbbff56 py3: add a test to show `hg diff` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32616
diff changeset
   127
  +This is the file 'iota'.
31607
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   128
  $ $PYTHON3 $HGBIN commit --message 'commit performed in Python 3'
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   129
  $ $PYTHON3 $HGBIN status
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   130
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   131
  $ mkdir A
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   132
  $ echo "This is the file 'mu'." > A/mu
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   133
  $ $PYTHON3 $HGBIN addremove
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   134
  adding A/mu
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   135
  $ $PYTHON3 $HGBIN status
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   136
  A A/mu
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   137
  $ HGEDITOR='echo message > ' $PYTHON3 $HGBIN commit
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   138
  $ $PYTHON3 $HGBIN status
31717
62676bb8d534 tests: add check to make sure summary works on Python 2
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31651
diff changeset
   139
  $ $PYHON3 $HGBIN summary
62676bb8d534 tests: add check to make sure summary works on Python 2
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31651
diff changeset
   140
  parent: 1:e1e9167203d4 tip
62676bb8d534 tests: add check to make sure summary works on Python 2
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31651
diff changeset
   141
   message
62676bb8d534 tests: add check to make sure summary works on Python 2
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31651
diff changeset
   142
  branch: default
62676bb8d534 tests: add check to make sure summary works on Python 2
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31651
diff changeset
   143
  commit: (clean)
62676bb8d534 tests: add check to make sure summary works on Python 2
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31651
diff changeset
   144
  update: (current)
62676bb8d534 tests: add check to make sure summary works on Python 2
Pulkit Goyal <7895pulkit@gmail.com>
parents: 31651
diff changeset
   145
  phases: 2 draft
31607
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   146
32615
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   147
Test weird unicode-vs-bytes stuff
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   148
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   149
  $ $PYTHON3 $HGBIN help | egrep -v '^ |^$'
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   150
  Mercurial Distributed SCM
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   151
  list of commands:
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   152
  additional help topics:
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   153
  (use 'hg help -v' to show built-in aliases and global options)
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   154
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   155
  $ $PYTHON3 $HGBIN help help | egrep -v '^ |^$'
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   156
  hg help [-ecks] [TOPIC]
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   157
  show help for a given topic or a help overview
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   158
  options ([+] can be repeated):
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   159
  (some details hidden, use --verbose to show complete help)
c9318beb7c1a py3: convert __doc__ back to bytes in help.py
Yuya Nishihara <yuya@tcha.org>
parents: 32520
diff changeset
   160
32616
6df193b5c437 py3: implement __bytes__() on most of our exception classes
Yuya Nishihara <yuya@tcha.org>
parents: 32615
diff changeset
   161
  $ $PYTHON3 $HGBIN help -k notopic
6df193b5c437 py3: implement __bytes__() on most of our exception classes
Yuya Nishihara <yuya@tcha.org>
parents: 32615
diff changeset
   162
  abort: no matches
6df193b5c437 py3: implement __bytes__() on most of our exception classes
Yuya Nishihara <yuya@tcha.org>
parents: 32615
diff changeset
   163
  (try 'hg help' for a list of topics)
6df193b5c437 py3: implement __bytes__() on most of our exception classes
Yuya Nishihara <yuya@tcha.org>
parents: 32615
diff changeset
   164
  [255]
6df193b5c437 py3: implement __bytes__() on most of our exception classes
Yuya Nishihara <yuya@tcha.org>
parents: 32615
diff changeset
   165
31607
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   166
Prove the repo is valid using the Python 2 `hg`:
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   167
  $ hg verify
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   168
  checking changesets
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   169
  checking manifests
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   170
  crosschecking files in changesets and manifests
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   171
  checking files
31651
d3140fd322bf py3: prove second commit works
Yuya Nishihara <yuya@tcha.org>
parents: 31632
diff changeset
   172
  2 files, 2 changesets, 2 total revisions
31607
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   173
  $ hg log
31651
d3140fd322bf py3: prove second commit works
Yuya Nishihara <yuya@tcha.org>
parents: 31632
diff changeset
   174
  changeset:   1:e1e9167203d4
31607
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   175
  tag:         tip
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   176
  user:        test
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   177
  date:        Thu Jan 01 00:00:00 1970 +0000
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   178
  summary:     message
aea8ec3f7dd1 py3: prove `hg {add,addremove,commit} all work
Augie Fackler <augie@google.com>
parents: 31524
diff changeset
   179
  
31651
d3140fd322bf py3: prove second commit works
Yuya Nishihara <yuya@tcha.org>
parents: 31632
diff changeset
   180
  changeset:   0:71c96e924262
d3140fd322bf py3: prove second commit works
Yuya Nishihara <yuya@tcha.org>
parents: 31632
diff changeset
   181
  user:        test
d3140fd322bf py3: prove second commit works
Yuya Nishihara <yuya@tcha.org>
parents: 31632
diff changeset
   182
  date:        Thu Jan 01 00:00:00 1970 +0000
d3140fd322bf py3: prove second commit works
Yuya Nishihara <yuya@tcha.org>
parents: 31632
diff changeset
   183
  summary:     commit performed in Python 3
d3140fd322bf py3: prove second commit works
Yuya Nishihara <yuya@tcha.org>
parents: 31632
diff changeset
   184
  
32162
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   185
32803
90ce5f0366ba py3: use python3 hg in test-py3-commands.t at places where py2 hg was used
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32645
diff changeset
   186
  $ $PYTHON3 $HGBIN log -G
32162
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   187
  @  changeset:   1:e1e9167203d4
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   188
  |  tag:         tip
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   189
  |  user:        test
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   190
  |  date:        Thu Jan 01 00:00:00 1970 +0000
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   191
  |  summary:     message
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   192
  |
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   193
  o  changeset:   0:71c96e924262
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   194
     user:        test
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   195
     date:        Thu Jan 01 00:00:00 1970 +0000
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   196
     summary:     commit performed in Python 3
4c49c8601093 py3: add test to show 'hg log -G' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32161
diff changeset
   197
  
32803
90ce5f0366ba py3: use python3 hg in test-py3-commands.t at places where py2 hg was used
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32645
diff changeset
   198
  $ $PYTHON3 $HGBIN log -Tjson
32163
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   199
  [
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   200
   {
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   201
    "rev": 1,
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   202
    "node": "e1e9167203d450ca2f558af628955b5f5afd4489",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   203
    "branch": "default",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   204
    "phase": "draft",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   205
    "user": "test",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   206
    "date": [0, 0],
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   207
    "desc": "message",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   208
    "bookmarks": [],
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   209
    "tags": ["tip"],
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   210
    "parents": ["71c96e924262969ff0d8d3d695b0f75412ccc3d8"]
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   211
   },
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   212
   {
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   213
    "rev": 0,
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   214
    "node": "71c96e924262969ff0d8d3d695b0f75412ccc3d8",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   215
    "branch": "default",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   216
    "phase": "draft",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   217
    "user": "test",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   218
    "date": [0, 0],
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   219
    "desc": "commit performed in Python 3",
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   220
    "bookmarks": [],
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   221
    "tags": [],
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   222
    "parents": ["0000000000000000000000000000000000000000"]
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   223
   }
e1d1f1bc4a95 py3: add test to show 'hg log -Tjson' works
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32162
diff changeset
   224
  ]
32645
74e9496e4986 py3: add test to show `hg update` and `hg identify` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32644
diff changeset
   225
74e9496e4986 py3: add test to show `hg update` and `hg identify` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32644
diff changeset
   226
Show that update works now!
74e9496e4986 py3: add test to show `hg update` and `hg identify` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32644
diff changeset
   227
32803
90ce5f0366ba py3: use python3 hg in test-py3-commands.t at places where py2 hg was used
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32645
diff changeset
   228
  $ $PYTHON3 $HGBIN up 0
32645
74e9496e4986 py3: add test to show `hg update` and `hg identify` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32644
diff changeset
   229
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
32803
90ce5f0366ba py3: use python3 hg in test-py3-commands.t at places where py2 hg was used
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32645
diff changeset
   230
  $ $PYTHON3 $HGBIN identify
32645
74e9496e4986 py3: add test to show `hg update` and `hg identify` works on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32644
diff changeset
   231
  71c96e924262
33093
7fed389f9a9f py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32803
diff changeset
   232
7fed389f9a9f py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32803
diff changeset
   233
branches and bookmarks also works!
7fed389f9a9f py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32803
diff changeset
   234
7fed389f9a9f py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32803
diff changeset
   235
  $ $PYTHON3 $HGBIN branches
7fed389f9a9f py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32803
diff changeset
   236
  default                        1:e1e9167203d4
7fed389f9a9f py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32803
diff changeset
   237
  $ $PYTHON3 $HGBIN bookmark book
7fed389f9a9f py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32803
diff changeset
   238
  $ $PYTHON3 $HGBIN bookmarks
7fed389f9a9f py3: add tests to show `hg bookmarks` and `hg branches` work on Python 3
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32803
diff changeset
   239
   * book                      0:71c96e924262