##// END OF EJS Templates
tests: fix up test-bad-extension.t's inline extension...
Augie Fackler -
r40222:9cbc2579 default
parent child Browse files
Show More
@@ -1,137 +1,137 b''
1 ensure that failing ui.atexit handlers report sensibly
1 ensure that failing ui.atexit handlers report sensibly
2
2
3 $ cat > $TESTTMP/bailatexit.py <<EOF
3 $ cat > $TESTTMP/bailatexit.py <<EOF
4 > from mercurial import util
4 > from mercurial import util
5 > def bail():
5 > def bail():
6 > raise RuntimeError('ui.atexit handler exception')
6 > raise RuntimeError('ui.atexit handler exception')
7 >
7 >
8 > def extsetup(ui):
8 > def extsetup(ui):
9 > ui.atexit(bail)
9 > ui.atexit(bail)
10 > EOF
10 > EOF
11 $ hg -q --config extensions.bailatexit=$TESTTMP/bailatexit.py \
11 $ hg -q --config extensions.bailatexit=$TESTTMP/bailatexit.py \
12 > help help
12 > help help
13 hg help [-ecks] [TOPIC]
13 hg help [-ecks] [TOPIC]
14
14
15 show help for a given topic or a help overview
15 show help for a given topic or a help overview
16 error in exit handlers:
16 error in exit handlers:
17 Traceback (most recent call last):
17 Traceback (most recent call last):
18 File "*/mercurial/dispatch.py", line *, in _runexithandlers (glob)
18 File "*/mercurial/dispatch.py", line *, in _runexithandlers (glob)
19 func(*args, **kwargs)
19 func(*args, **kwargs)
20 File "$TESTTMP/bailatexit.py", line *, in bail (glob)
20 File "$TESTTMP/bailatexit.py", line *, in bail (glob)
21 raise RuntimeError('ui.atexit handler exception')
21 raise RuntimeError('ui.atexit handler exception')
22 RuntimeError: ui.atexit handler exception
22 RuntimeError: ui.atexit handler exception
23 [255]
23 [255]
24
24
25 $ rm $TESTTMP/bailatexit.py
25 $ rm $TESTTMP/bailatexit.py
26
26
27 another bad extension
27 another bad extension
28
28
29 $ echo 'raise Exception("bit bucket overflow")' > badext.py
29 $ echo 'raise Exception("bit bucket overflow")' > badext.py
30 $ abspathexc=`pwd`/badext.py
30 $ abspathexc=`pwd`/badext.py
31
31
32 $ cat >baddocext.py <<EOF
32 $ cat >baddocext.py <<EOF
33 > """
33 > """
34 > baddocext is bad
34 > baddocext is bad
35 > """
35 > """
36 > EOF
36 > EOF
37 $ abspathdoc=`pwd`/baddocext.py
37 $ abspathdoc=`pwd`/baddocext.py
38
38
39 $ cat <<EOF >> $HGRCPATH
39 $ cat <<EOF >> $HGRCPATH
40 > [extensions]
40 > [extensions]
41 > gpg =
41 > gpg =
42 > hgext.gpg =
42 > hgext.gpg =
43 > badext = $abspathexc
43 > badext = $abspathexc
44 > baddocext = $abspathdoc
44 > baddocext = $abspathdoc
45 > badext2 =
45 > badext2 =
46 > EOF
46 > EOF
47
47
48 $ hg -q help help 2>&1 |grep extension
48 $ hg -q help help 2>&1 |grep extension
49 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
49 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
50 *** failed to import extension badext2: No module named badext2
50 *** failed to import extension badext2: No module named badext2
51
51
52 show traceback
52 show traceback
53
53
54 $ hg -q help help --traceback 2>&1 | egrep ' extension|^Exception|Traceback|ImportError'
54 $ hg -q help help --traceback 2>&1 | egrep ' extension|^Exception|Traceback|ImportError'
55 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
55 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
56 Traceback (most recent call last):
56 Traceback (most recent call last):
57 Exception: bit bucket overflow
57 Exception: bit bucket overflow
58 *** failed to import extension badext2: No module named badext2
58 *** failed to import extension badext2: No module named badext2
59 Traceback (most recent call last):
59 Traceback (most recent call last):
60 ImportError: No module named badext2
60 ImportError: No module named badext2
61
61
62 names of extensions failed to load can be accessed via extensions.notloaded()
62 names of extensions failed to load can be accessed via extensions.notloaded()
63
63
64 $ cat <<EOF > showbadexts.py
64 $ cat <<EOF > showbadexts.py
65 > from mercurial import commands, extensions, registrar
65 > from mercurial import commands, extensions, registrar
66 > cmdtable = {}
66 > cmdtable = {}
67 > command = registrar.command(cmdtable)
67 > command = registrar.command(cmdtable)
68 > @command(b'showbadexts', norepo=True)
68 > @command(b'showbadexts', norepo=True)
69 > def showbadexts(ui, *pats, **opts):
69 > def showbadexts(ui, *pats, **opts):
70 > ui.write('BADEXTS: %s\n' % ' '.join(sorted(extensions.notloaded())))
70 > ui.write(b'BADEXTS: %s\n' % b' '.join(sorted(extensions.notloaded())))
71 > EOF
71 > EOF
72 $ hg --config extensions.badexts=showbadexts.py showbadexts 2>&1 | grep '^BADEXTS'
72 $ hg --config extensions.badexts=showbadexts.py showbadexts 2>&1 | grep '^BADEXTS'
73 BADEXTS: badext badext2
73 BADEXTS: badext badext2
74
74
75 #if no-extraextensions
75 #if no-extraextensions
76 show traceback for ImportError of hgext.name if devel.debug.extensions is set
76 show traceback for ImportError of hgext.name if devel.debug.extensions is set
77
77
78 $ (hg help help --traceback --debug --config devel.debug.extensions=yes 2>&1) \
78 $ (hg help help --traceback --debug --config devel.debug.extensions=yes 2>&1) \
79 > | grep -v '^ ' \
79 > | grep -v '^ ' \
80 > | egrep 'extension..[^p]|^Exception|Traceback|ImportError|not import'
80 > | egrep 'extension..[^p]|^Exception|Traceback|ImportError|not import'
81 debug.extensions: loading extensions
81 debug.extensions: loading extensions
82 debug.extensions: - processing 5 entries
82 debug.extensions: - processing 5 entries
83 debug.extensions: - loading extension: 'gpg'
83 debug.extensions: - loading extension: 'gpg'
84 debug.extensions: > 'gpg' extension loaded in * (glob)
84 debug.extensions: > 'gpg' extension loaded in * (glob)
85 debug.extensions: - validating extension tables: 'gpg'
85 debug.extensions: - validating extension tables: 'gpg'
86 debug.extensions: - invoking registered callbacks: 'gpg'
86 debug.extensions: - invoking registered callbacks: 'gpg'
87 debug.extensions: > callbacks completed in * (glob)
87 debug.extensions: > callbacks completed in * (glob)
88 debug.extensions: - loading extension: 'badext'
88 debug.extensions: - loading extension: 'badext'
89 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
89 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
90 Traceback (most recent call last):
90 Traceback (most recent call last):
91 Exception: bit bucket overflow
91 Exception: bit bucket overflow
92 debug.extensions: - loading extension: 'baddocext'
92 debug.extensions: - loading extension: 'baddocext'
93 debug.extensions: > 'baddocext' extension loaded in * (glob)
93 debug.extensions: > 'baddocext' extension loaded in * (glob)
94 debug.extensions: - validating extension tables: 'baddocext'
94 debug.extensions: - validating extension tables: 'baddocext'
95 debug.extensions: - invoking registered callbacks: 'baddocext'
95 debug.extensions: - invoking registered callbacks: 'baddocext'
96 debug.extensions: > callbacks completed in * (glob)
96 debug.extensions: > callbacks completed in * (glob)
97 debug.extensions: - loading extension: 'badext2'
97 debug.extensions: - loading extension: 'badext2'
98 debug.extensions: - could not import hgext.badext2 (No module named badext2): trying hgext3rd.badext2
98 debug.extensions: - could not import hgext.badext2 (No module named badext2): trying hgext3rd.badext2
99 Traceback (most recent call last):
99 Traceback (most recent call last):
100 ImportError: No module named *badext2 (glob)
100 ImportError: No module named *badext2 (glob)
101 debug.extensions: - could not import hgext3rd.badext2 (No module named badext2): trying badext2
101 debug.extensions: - could not import hgext3rd.badext2 (No module named badext2): trying badext2
102 Traceback (most recent call last):
102 Traceback (most recent call last):
103 ImportError: No module named *badext2 (glob)
103 ImportError: No module named *badext2 (glob)
104 *** failed to import extension badext2: No module named badext2
104 *** failed to import extension badext2: No module named badext2
105 Traceback (most recent call last):
105 Traceback (most recent call last):
106 ImportError: No module named badext2
106 ImportError: No module named badext2
107 debug.extensions: > loaded 2 extensions, total time * (glob)
107 debug.extensions: > loaded 2 extensions, total time * (glob)
108 debug.extensions: - loading configtable attributes
108 debug.extensions: - loading configtable attributes
109 debug.extensions: - executing uisetup hooks
109 debug.extensions: - executing uisetup hooks
110 debug.extensions: - running uisetup for 'gpg'
110 debug.extensions: - running uisetup for 'gpg'
111 debug.extensions: > uisetup for 'gpg' took * (glob)
111 debug.extensions: > uisetup for 'gpg' took * (glob)
112 debug.extensions: - running uisetup for 'baddocext'
112 debug.extensions: - running uisetup for 'baddocext'
113 debug.extensions: > uisetup for 'baddocext' took * (glob)
113 debug.extensions: > uisetup for 'baddocext' took * (glob)
114 debug.extensions: > all uisetup took * (glob)
114 debug.extensions: > all uisetup took * (glob)
115 debug.extensions: - executing extsetup hooks
115 debug.extensions: - executing extsetup hooks
116 debug.extensions: - running extsetup for 'gpg'
116 debug.extensions: - running extsetup for 'gpg'
117 debug.extensions: > extsetup for 'gpg' took * (glob)
117 debug.extensions: > extsetup for 'gpg' took * (glob)
118 debug.extensions: - running extsetup for 'baddocext'
118 debug.extensions: - running extsetup for 'baddocext'
119 debug.extensions: > extsetup for 'baddocext' took * (glob)
119 debug.extensions: > extsetup for 'baddocext' took * (glob)
120 debug.extensions: > all extsetup took * (glob)
120 debug.extensions: > all extsetup took * (glob)
121 debug.extensions: - executing remaining aftercallbacks
121 debug.extensions: - executing remaining aftercallbacks
122 debug.extensions: > remaining aftercallbacks completed in * (glob)
122 debug.extensions: > remaining aftercallbacks completed in * (glob)
123 debug.extensions: - loading extension registration objects
123 debug.extensions: - loading extension registration objects
124 debug.extensions: > extension registration object loading took * (glob)
124 debug.extensions: > extension registration object loading took * (glob)
125 debug.extensions: > extension baddocext take a total of * to load (glob)
125 debug.extensions: > extension baddocext take a total of * to load (glob)
126 debug.extensions: > extension gpg take a total of * to load (glob)
126 debug.extensions: > extension gpg take a total of * to load (glob)
127 debug.extensions: extension loading complete
127 debug.extensions: extension loading complete
128 #endif
128 #endif
129
129
130 confirm that there's no crash when an extension's documentation is bad
130 confirm that there's no crash when an extension's documentation is bad
131
131
132 $ hg help --keyword baddocext
132 $ hg help --keyword baddocext
133 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
133 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
134 *** failed to import extension badext2: No module named badext2
134 *** failed to import extension badext2: No module named badext2
135 Topics:
135 Topics:
136
136
137 extensions Using Additional Features
137 extensions Using Additional Features
General Comments 0
You need to be logged in to leave comments. Login now