annotate tests/test-eolfilename.t @ 19933:621a26eb3a99

demandimport: allow extensions to import own modules by absolute name Before this patch, python modules of each extensions can't import another one in own extension by absolute name, because root modules of each extensions are loaded with "hgext_" prefix. For example, "import extroot.bar" in "extroot/foo.py" of "extroot" extension fails, even though "import bar" in it succeeds. Installing extensions into site-packages of python library path can avoid this problem, but this solution is not reasonable in some cases: using binary package of Mercurial on Windows, for example. This patch retries to import with "hgext_" prefix after ImportError, if the module in the extension may try to import another one in own extension. This patch doesn't change some "_import()"/"_origimport()" invocations below, because ordinary extensions shouldn't cause such invocations. - invocation of "_import()" when root module imports sub-module by absolute path without "fromlist" for example, "import a.b" in "a.__init__.py". extensions are loaded with "hgext_" prefix, and this causes execution of another (= fixed by this patch) code path. - invocation of "_origimport()" when "level != -1" with "fromlist" for example, importing after "from __future__ import absolute_import" (level == 0), or "from . import b" or "from .a import b" (0 < level), for portability between python versions and environments, extensions shouldn't cause "level != -1".
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Sat, 05 Oct 2013 01:02:22 +0900
parents c8709ff57ff2
children 7a9cbb315d84
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
1 http://mercurial.selenic.com/bts/issue352
3607
f4c9bb4ad7b1 issue352: disallow '\n' and '\r' in filenames (dirstate and manifest)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
2
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
3 $ "$TESTDIR/hghave" eol-in-paths || exit 80
3607
f4c9bb4ad7b1 issue352: disallow '\n' and '\r' in filenames (dirstate and manifest)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
4
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
5 test issue352
3607
f4c9bb4ad7b1 issue352: disallow '\n' and '\r' in filenames (dirstate and manifest)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
6
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
7 $ hg init foo
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
8 $ cd foo
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
9 $ A=`printf 'he\rllo'`
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
10 $ echo foo > "$A"
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
11 $ hg add
17742
405b6bd015df run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
12 adding he\r (no-eol) (esc)
405b6bd015df run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
13 llo
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
14 abort: '\n' and '\r' disallowed in filenames: 'he\rllo'
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
15 [255]
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
16 $ hg ci -A -m m
17742
405b6bd015df run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
17 adding he\r (no-eol) (esc)
405b6bd015df run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
18 llo
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
19 abort: '\n' and '\r' disallowed in filenames: 'he\rllo'
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
20 [255]
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
21 $ rm "$A"
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
22 $ echo foo > "hell
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
23 > o"
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
24 $ hg add
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
25 adding hell
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
26 o
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
27 abort: '\n' and '\r' disallowed in filenames: 'hell\no'
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
28 [255]
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
29 $ hg ci -A -m m
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
30 adding hell
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
31 o
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
32 abort: '\n' and '\r' disallowed in filenames: 'hell\no'
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
33 [255]
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
34 $ echo foo > "$A"
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
35 $ hg debugwalk
17742
405b6bd015df run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
36 f he\r (no-eol) (esc)
405b6bd015df run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
37 llo he\r (no-eol) (esc)
405b6bd015df run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
38 llo
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
39 f hell
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
40 o hell
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
41 o
10475
2253715fde97 color: don't crash on invalid status codes (issue2036)
Brodie Rao <me+hg@dackz.net>
parents: 8936
diff changeset
42
13945
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
43 $ echo bla > quickfox
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
44 $ hg add quickfox
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
45 $ hg ci -m 2
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
46 $ A=`printf 'quick\rfox'`
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
47 $ hg cp quickfox "$A"
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
48 abort: '\n' and '\r' disallowed in filenames: 'quick\rfox'
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
49 [255]
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
50 $ hg mv quickfox "$A"
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
51 abort: '\n' and '\r' disallowed in filenames: 'quick\rfox'
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
52 [255]
03f3ce7ca2a8 copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents: 12942
diff changeset
53
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
54 http://mercurial.selenic.com/bts/issue2036
10475
2253715fde97 color: don't crash on invalid status codes (issue2036)
Brodie Rao <me+hg@dackz.net>
parents: 8936
diff changeset
55
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
56 $ cd ..
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
57
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
58 test issue2039
10475
2253715fde97 color: don't crash on invalid status codes (issue2036)
Brodie Rao <me+hg@dackz.net>
parents: 8936
diff changeset
59
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
60 $ hg init bar
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
61 $ cd bar
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
62 $ echo "[extensions]" >> $HGRCPATH
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
63 $ echo "color=" >> $HGRCPATH
13987
e0f07847f8de color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents: 13945
diff changeset
64 $ echo "[color]" >> $HGRCPATH
e0f07847f8de color: add support for terminfo-based attributes and color
Danek Duvall <duvall@comfychair.org>
parents: 13945
diff changeset
65 $ echo "mode = ansi" >> $HGRCPATH
12425
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
66 $ A=`printf 'foo\nbar'`
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
67 $ B=`printf 'foo\nbar.baz'`
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
68 $ touch "$A"
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
69 $ touch "$B"
fcf55506c2f4 tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents: 10475
diff changeset
70 $ hg status --color=always
17910
c8709ff57ff2 status: use condwrite to avoid zero-width format string hack
Matt Mackall <mpm@selenic.com>
parents: 17742
diff changeset
71 \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4mfoo\x1b[0m (esc)
12942
05fffd665170 tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12425
diff changeset
72 \x1b[0;35;1;4mbar\x1b[0m (esc)
17910
c8709ff57ff2 status: use condwrite to avoid zero-width format string hack
Matt Mackall <mpm@selenic.com>
parents: 17742
diff changeset
73 \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4mfoo\x1b[0m (esc)
12942
05fffd665170 tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12425
diff changeset
74 \x1b[0;35;1;4mbar.baz\x1b[0m (esc)
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13987
diff changeset
75
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13987
diff changeset
76 $ cd ..