Mercurial > hg
annotate tests/test-mq-qimport-fail-cleanup.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 | f2719b387380 |
children | 0342bf292f73 |
rev | line source |
---|---|
12465
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
1 Failed qimport of patches from files should cleanup by recording successfully |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
2 imported patches in series file. |
11462
1b82a26635d7
mq: qimport cleanup on fail (issue2214)
Vishakh H <vsh426@gmail.com>
parents:
diff
changeset
|
3 |
12465
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
4 $ echo "[extensions]" >> $HGRCPATH |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
5 $ echo "mq=" >> $HGRCPATH |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
6 $ hg init repo |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
7 $ cd repo |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
8 $ echo a > a |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
9 $ hg ci -Am'add a' |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
10 adding a |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
11 $ cat >b.patch<<EOF |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
12 > diff --git a/a b/a |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
13 > --- a/a |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
14 > +++ b/a |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
15 > @@ -1,1 +1,2 @@ |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
16 > a |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
17 > +b |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
18 > EOF |
11462
1b82a26635d7
mq: qimport cleanup on fail (issue2214)
Vishakh H <vsh426@gmail.com>
parents:
diff
changeset
|
19 |
12465
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
20 empty series |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
21 |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
22 $ hg qseries |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
23 |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
24 qimport valid patch followed by invalid patch |
11462
1b82a26635d7
mq: qimport cleanup on fail (issue2214)
Vishakh H <vsh426@gmail.com>
parents:
diff
changeset
|
25 |
12465
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
26 $ hg qimport b.patch fakepatch |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
27 adding b.patch to series file |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
28 abort: unable to read file fakepatch |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
29 [255] |
11462
1b82a26635d7
mq: qimport cleanup on fail (issue2214)
Vishakh H <vsh426@gmail.com>
parents:
diff
changeset
|
30 |
12465
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
31 valid patches before fail added to series |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
32 |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
33 $ hg qseries |
8b12768b15e2
tests: unify test-mq-qimport-fail-cleanup
Matt Mackall <mpm@selenic.com>
parents:
11462
diff
changeset
|
34 b.patch |
15704
8857e150bec0
phases: prevent mq to qimport immutable change.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
15243
diff
changeset
|
35 |
8857e150bec0
phases: prevent mq to qimport immutable change.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
15243
diff
changeset
|
36 $ hg pull -q -r 0 . # update phase |
8857e150bec0
phases: prevent mq to qimport immutable change.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
15243
diff
changeset
|
37 $ hg qimport -r 0 |
8857e150bec0
phases: prevent mq to qimport immutable change.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
15243
diff
changeset
|
38 abort: revision 0 is not mutable |
8857e150bec0
phases: prevent mq to qimport immutable change.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
15243
diff
changeset
|
39 (see "hg help phases" for details) |
8857e150bec0
phases: prevent mq to qimport immutable change.
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
15243
diff
changeset
|
40 [255] |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
41 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16107
diff
changeset
|
42 $ cd .. |