Mercurial > hg
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 |
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 .. |