tests/test-py3-commands.t
changeset 32210 cff15c64f57e
parent 31722 62676bb8d534
child 32211 4c49c8601093
equal deleted inserted replaced
32209:906da89821ce 32210:cff15c64f57e
       
     1 #require py3exe
       
     2 
       
     3 This test helps in keeping a track on which commands we can run on
       
     4 Python 3 and see what kind of errors are coming up.
       
     5 The full traceback is hidden to have a stable output.
       
     6   $ HGBIN=`which hg`
       
     7 
       
     8   $ for cmd in version debuginstall ; do
       
     9   >   echo $cmd
       
    10   >   $PYTHON3 $HGBIN $cmd 2>&1 2>&1 | tail -1
       
    11   > done
       
    12   version
       
    13   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       
    14   debuginstall
       
    15   no problems detected
       
    16 
       
    17 #if test-repo
       
    18 Make a clone so that any features in the developer's .hg/hgrc that
       
    19 might confuse Python 3 don't break this test. When we can do commit in
       
    20 Python 3, we'll stop doing this. We use e76ed1e480ef for the clone
       
    21 because it has different files than 273ce12ad8f1, so we can test both
       
    22 `files` from dirstate and `files` loaded from a specific revision.
       
    23 
       
    24   $ hg clone -r e76ed1e480ef "`dirname "$TESTDIR"`" testrepo 2>&1 | tail -1
       
    25   15 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
    26 
       
    27 Test using -R, which exercises some URL code:
       
    28   $ $PYTHON3 $HGBIN -R testrepo files -r 273ce12ad8f1 | tail -1
       
    29   testrepo/tkmerge
       
    30 
       
    31 Now prove `hg files` is reading the whole manifest. We have to grep
       
    32 out some potential warnings that come from hgrc as yet.
       
    33   $ cd testrepo
       
    34   $ $PYTHON3 $HGBIN files -r 273ce12ad8f1
       
    35   .hgignore
       
    36   PKG-INFO
       
    37   README
       
    38   hg
       
    39   mercurial/__init__.py
       
    40   mercurial/byterange.py
       
    41   mercurial/fancyopts.py
       
    42   mercurial/hg.py
       
    43   mercurial/mdiff.py
       
    44   mercurial/revlog.py
       
    45   mercurial/transaction.py
       
    46   notes.txt
       
    47   setup.py
       
    48   tkmerge
       
    49 
       
    50   $ $PYTHON3 $HGBIN files -r 273ce12ad8f1 | wc -l
       
    51   \s*14 (re)
       
    52   $ $PYTHON3 $HGBIN files | wc -l
       
    53   \s*15 (re)
       
    54 
       
    55 Test if log-like commands work:
       
    56 
       
    57   $ $PYTHON3 $HGBIN tip
       
    58   changeset:   10:e76ed1e480ef
       
    59   tag:         tip
       
    60   user:        oxymoron@cinder.waste.org
       
    61   date:        Tue May 03 23:37:43 2005 -0800
       
    62   summary:     Fix linking of changeset revs when merging
       
    63   
       
    64 
       
    65   $ $PYTHON3 $HGBIN log -r0
       
    66   changeset:   0:9117c6561b0b
       
    67   user:        mpm@selenic.com
       
    68   date:        Tue May 03 13:16:10 2005 -0800
       
    69   summary:     Add back links from file revisions to changeset revisions
       
    70   
       
    71 
       
    72   $ cd ..
       
    73 #endif
       
    74 
       
    75 Test if `hg config` works:
       
    76 
       
    77   $ $PYTHON3 $HGBIN config
       
    78   defaults.backout=-d "0 0"
       
    79   defaults.commit=-d "0 0"
       
    80   defaults.shelve=--date "0 0"
       
    81   defaults.tag=-d "0 0"
       
    82   devel.all-warnings=true
       
    83   largefiles.usercache=$TESTTMP/.cache/largefiles
       
    84   ui.slash=True
       
    85   ui.interactive=False
       
    86   ui.mergemarkers=detailed
       
    87   ui.promptecho=True
       
    88   web.address=localhost
       
    89   web.ipv6=False
       
    90 
       
    91   $ cat > included-hgrc <<EOF
       
    92   > [extensions]
       
    93   > babar = imaginary_elephant
       
    94   > EOF
       
    95   $ cat >> $HGRCPATH <<EOF
       
    96   > %include $TESTTMP/included-hgrc
       
    97   > EOF
       
    98   $ $PYTHON3 $HGBIN version | tail -1
       
    99   *** failed to import extension babar from imaginary_elephant: *: 'imaginary_elephant' (glob)
       
   100   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       
   101 
       
   102   $ rm included-hgrc
       
   103   $ touch included-hgrc
       
   104 
       
   105 Test bytes-ness of policy.policy with HGMODULEPOLICY
       
   106 
       
   107   $ HGMODULEPOLICY=py
       
   108   $ export HGMODULEPOLICY
       
   109   $ $PYTHON3 `which hg` debuginstall 2>&1 2>&1 | tail -1
       
   110   no problems detected
       
   111 
       
   112 `hg init` can create empty repos
       
   113 `hg status works fine`
       
   114 `hg summary` also works!
       
   115 
       
   116   $ $PYTHON3 `which hg` init py3repo
       
   117   $ cd py3repo
       
   118   $ echo "This is the file 'iota'." > iota
       
   119   $ $PYTHON3 $HGBIN status
       
   120   ? iota
       
   121   $ $PYTHON3 $HGBIN add iota
       
   122   $ $PYTHON3 $HGBIN status
       
   123   A iota
       
   124   $ $PYTHON3 $HGBIN commit --message 'commit performed in Python 3'
       
   125   $ $PYTHON3 $HGBIN status
       
   126 
       
   127   $ mkdir A
       
   128   $ echo "This is the file 'mu'." > A/mu
       
   129   $ $PYTHON3 $HGBIN addremove
       
   130   adding A/mu
       
   131   $ $PYTHON3 $HGBIN status
       
   132   A A/mu
       
   133   $ HGEDITOR='echo message > ' $PYTHON3 $HGBIN commit
       
   134   $ $PYTHON3 $HGBIN status
       
   135   $ $PYHON3 $HGBIN summary
       
   136   parent: 1:e1e9167203d4 tip
       
   137    message
       
   138   branch: default
       
   139   commit: (clean)
       
   140   update: (current)
       
   141   phases: 2 draft
       
   142 
       
   143 Prove the repo is valid using the Python 2 `hg`:
       
   144   $ hg verify
       
   145   checking changesets
       
   146   checking manifests
       
   147   crosschecking files in changesets and manifests
       
   148   checking files
       
   149   2 files, 2 changesets, 2 total revisions
       
   150   $ hg log
       
   151   changeset:   1:e1e9167203d4
       
   152   tag:         tip
       
   153   user:        test
       
   154   date:        Thu Jan 01 00:00:00 1970 +0000
       
   155   summary:     message
       
   156   
       
   157   changeset:   0:71c96e924262
       
   158   user:        test
       
   159   date:        Thu Jan 01 00:00:00 1970 +0000
       
   160   summary:     commit performed in Python 3
       
   161