comparison tests/test-py3-commands.t @ 32161:cff15c64f57e

py3: rename test-check-py3-commands.t to test-py3-commands.t test-check-*.t is a set of tests which tests certain coding style checks. So this test was wrongly named, thanks to marmoute for pointing this out.
author Pulkit Goyal <7895pulkit@gmail.com>
date Thu, 04 May 2017 04:42:05 +0530
parents tests/test-check-py3-commands.t@62676bb8d534
children 4c49c8601093
comparison
equal deleted inserted replaced
32160:906da89821ce 32161: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