##// END OF EJS Templates
mq: implement log() on dummyui...
mq: implement log() on dummyui Otherwise ui.log() in extensions.py would explode.

File last commit:

r40467:09a37a5d default
r41031:19178aeb default
Show More
test-bad-extension.t
151 lines | 6.3 KiB | text/troff | Tads3Lexer
/ tests / test-bad-extension.t
Bryan O'Sullivan
atexit: test failing handlers
r31957 ensure that failing ui.atexit handlers report sensibly
$ cat > $TESTTMP/bailatexit.py <<EOF
> from mercurial import util
> def bail():
> raise RuntimeError('ui.atexit handler exception')
>
> def extsetup(ui):
> ui.atexit(bail)
> EOF
$ hg -q --config extensions.bailatexit=$TESTTMP/bailatexit.py \
> help help
av6
commands: adjust metavariables as appropriate...
r40382 hg help [-eck] [-s PLATFORM] [TOPIC]
Bryan O'Sullivan
atexit: test failing handlers
r31957
show help for a given topic or a help overview
error in exit handlers:
Traceback (most recent call last):
File "*/mercurial/dispatch.py", line *, in _runexithandlers (glob)
func(*args, **kwargs)
File "$TESTTMP/bailatexit.py", line *, in bail (glob)
raise RuntimeError('ui.atexit handler exception')
RuntimeError: ui.atexit handler exception
[255]
$ rm $TESTTMP/bailatexit.py
another bad extension
Martin Geisler
tests: unify test-bad-extension
r11858 $ echo 'raise Exception("bit bucket overflow")' > badext.py
Simon Farnsworth
tests: confirm that a badly documented extension doesn't cause a crash...
r28083 $ abspathexc=`pwd`/badext.py
$ cat >baddocext.py <<EOF
> """
> baddocext is bad
> """
> EOF
$ abspathdoc=`pwd`/baddocext.py
Martin Geisler
tests: unify test-bad-extension
r11858
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
> [extensions]
> gpg =
> hgext.gpg =
Simon Farnsworth
tests: confirm that a badly documented extension doesn't cause a crash...
r28083 > badext = $abspathexc
> baddocext = $abspathdoc
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 > badext2 =
> EOF
Martin Geisler
tests: unify test-bad-extension
r11858
timeless@mozdev.org
test-bad-extension: reduce dependencies on other things...
r26239 $ hg -q help help 2>&1 |grep extension
Mads Kiilerich
tests: remove redundant globs...
r12640 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
Augie Fackler
tests: add lots of globs and conditional output lines...
r40272 *** failed to import extension badext2: No module named *badext2* (glob)
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364
show traceback
Augie Fackler
tests: expand our coverage of errors in Python 3 for bad extensions...
r40273 $ hg -q help help --traceback 2>&1 | egrep ' extension|^Exception|Traceback|ImportError|ModuleNotFound'
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
Traceback (most recent call last):
Exception: bit bucket overflow
Augie Fackler
tests: add lots of globs and conditional output lines...
r40272 *** failed to import extension badext2: No module named *badext2* (glob)
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 Traceback (most recent call last):
Martijn Pieters
py3: use py3 as the test tag, dropping the k...
r40299 ImportError: No module named badext2 (no-py3 !)
ModuleNotFoundError: No module named 'hgext.badext2' (py3 !)
Traceback (most recent call last): (py3 !)
ModuleNotFoundError: No module named 'hgext3rd.badext2' (py3 !)
Traceback (most recent call last): (py3 !)
ModuleNotFoundError: No module named 'badext2' (py3 !)
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364
Jun Wu
extensions: add notloaded method to return extensions failed to load...
r28155 names of extensions failed to load can be accessed via extensions.notloaded()
$ cat <<EOF > showbadexts.py
Yuya Nishihara
registrar: move cmdutil.command to registrar module (API)...
r32337 > from mercurial import commands, extensions, registrar
Jun Wu
extensions: add notloaded method to return extensions failed to load...
r28155 > cmdtable = {}
Yuya Nishihara
registrar: move cmdutil.command to registrar module (API)...
r32337 > command = registrar.command(cmdtable)
Pulkit Goyal
py3: make sure commands name are bytes in tests
r33097 > @command(b'showbadexts', norepo=True)
Jun Wu
extensions: add notloaded method to return extensions failed to load...
r28155 > def showbadexts(ui, *pats, **opts):
Augie Fackler
tests: fix up test-bad-extension.t's inline extension...
r40222 > ui.write(b'BADEXTS: %s\n' % b' '.join(sorted(extensions.notloaded())))
Jun Wu
extensions: add notloaded method to return extensions failed to load...
r28155 > EOF
$ hg --config extensions.badexts=showbadexts.py showbadexts 2>&1 | grep '^BADEXTS'
BADEXTS: badext badext2
Gregory Szorc
tests: conditionalize extension tests for extra extensions...
r39148 #if no-extraextensions
Boris Feld
debug: move extensions debug behind a dedicated flag...
r38750 show traceback for ImportError of hgext.name if devel.debug.extensions is set
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364
Boris Feld
debug: move extensions debug behind a dedicated flag...
r38750 $ (hg help help --traceback --debug --config devel.debug.extensions=yes 2>&1) \
timeless@mozdev.org
test-bad-extension: reduce dependencies on other things...
r26239 > | grep -v '^ ' \
Augie Fackler
tests: expand our coverage of errors in Python 3 for bad extensions...
r40273 > | egrep 'extension..[^p]|^Exception|Traceback|ImportError|not import|ModuleNotFound'
Martijn Pieters
extensions: add detailed loading information...
r38834 debug.extensions: loading extensions
debug.extensions: - processing 5 entries
Augie Fackler
extensions: fix up many many debug logs that use %r...
r40467 debug.extensions: - loading extension: gpg
debug.extensions: > gpg extension loaded in * (glob)
debug.extensions: - validating extension tables: gpg
debug.extensions: - invoking registered callbacks: gpg
Martijn Pieters
extensions: add detailed loading information...
r38834 debug.extensions: > callbacks completed in * (glob)
Augie Fackler
extensions: fix up many many debug logs that use %r...
r40467 debug.extensions: - loading extension: badext
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
Traceback (most recent call last):
Exception: bit bucket overflow
Augie Fackler
extensions: fix up many many debug logs that use %r...
r40467 debug.extensions: - loading extension: baddocext
debug.extensions: > baddocext extension loaded in * (glob)
debug.extensions: - validating extension tables: baddocext
debug.extensions: - invoking registered callbacks: baddocext
Martijn Pieters
extensions: add detailed loading information...
r38834 debug.extensions: > callbacks completed in * (glob)
Augie Fackler
extensions: fix up many many debug logs that use %r...
r40467 debug.extensions: - loading extension: badext2
Augie Fackler
tests: add lots of globs and conditional output lines...
r40272 debug.extensions: - could not import hgext.badext2 (No module named *badext2*): trying hgext3rd.badext2 (glob)
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 Traceback (most recent call last):
Martijn Pieters
py3: use py3 as the test tag, dropping the k...
r40299 ImportError: No module named badext2 (no-py3 !)
ModuleNotFoundError: No module named 'hgext.badext2' (py3 !)
Augie Fackler
tests: add lots of globs and conditional output lines...
r40272 debug.extensions: - could not import hgext3rd.badext2 (No module named *badext2*): trying badext2 (glob)
Pierre-Yves David
extensions: also search for extension in the 'hgext3rd' package...
r28541 Traceback (most recent call last):
Martijn Pieters
py3: use py3 as the test tag, dropping the k...
r40299 ImportError: No module named badext2 (no-py3 !)
ModuleNotFoundError: No module named 'hgext.badext2' (py3 !)
Traceback (most recent call last): (py3 !)
ModuleNotFoundError: No module named 'hgext3rd.badext2' (py3 !)
Augie Fackler
tests: add lots of globs and conditional output lines...
r40272 *** failed to import extension badext2: No module named *badext2* (glob)
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 Traceback (most recent call last):
Martijn Pieters
py3: use py3 as the test tag, dropping the k...
r40299 ModuleNotFoundError: No module named 'hgext.badext2' (py3 !)
Traceback (most recent call last): (py3 !)
ModuleNotFoundError: No module named 'hgext3rd.badext2' (py3 !)
Traceback (most recent call last): (py3 !)
ModuleNotFoundError: No module named 'badext2' (py3 !)
ImportError: No module named badext2 (no-py3 !)
Martijn Pieters
extensions: add detailed loading information...
r38834 debug.extensions: > loaded 2 extensions, total time * (glob)
debug.extensions: - loading configtable attributes
debug.extensions: - executing uisetup hooks
Augie Fackler
extensions: fix up many many debug logs that use %r...
r40467 debug.extensions: - running uisetup for gpg
debug.extensions: > uisetup for gpg took * (glob)
debug.extensions: - running uisetup for baddocext
debug.extensions: > uisetup for baddocext took * (glob)
Boris Feld
extensions: trace the total time of running all uisetup callbacks...
r39544 debug.extensions: > all uisetup took * (glob)
Martijn Pieters
extensions: add detailed loading information...
r38834 debug.extensions: - executing extsetup hooks
Augie Fackler
extensions: fix up many many debug logs that use %r...
r40467 debug.extensions: - running extsetup for gpg
debug.extensions: > extsetup for gpg took * (glob)
debug.extensions: - running extsetup for baddocext
debug.extensions: > extsetup for baddocext took * (glob)
Boris Feld
extensions: trace the total time of running all extsetup callbacks...
r39545 debug.extensions: > all extsetup took * (glob)
Martijn Pieters
extensions: add detailed loading information...
r38834 debug.extensions: - executing remaining aftercallbacks
debug.extensions: > remaining aftercallbacks completed in * (glob)
debug.extensions: - loading extension registration objects
debug.extensions: > extension registration object loading took * (glob)
Boris Feld
extension: add a summary of total loading time per extension...
r39547 debug.extensions: > extension baddocext take a total of * to load (glob)
debug.extensions: > extension gpg take a total of * to load (glob)
Martijn Pieters
extensions: add detailed loading information...
r38834 debug.extensions: extension loading complete
Gregory Szorc
tests: conditionalize extension tests for extra extensions...
r39148 #endif
Simon Farnsworth
tests: confirm that a badly documented extension doesn't cause a crash...
r28083
confirm that there's no crash when an extension's documentation is bad
$ hg help --keyword baddocext
*** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
Augie Fackler
tests: add lots of globs and conditional output lines...
r40272 *** failed to import extension badext2: No module named *badext2* (glob)
Simon Farnsworth
tests: confirm that a badly documented extension doesn't cause a crash...
r28083 Topics:
extensions Using Additional Features