##// END OF EJS Templates
extensions: register functions always at loading extension (issue5601)...
extensions: register functions always at loading extension (issue5601) Before this patch, functions defined in extensions are registered via extra loaders only in _dispatch(). Therefore, loading extensions in other code paths like below omits registration of functions. - WSGI service - operation across repositories (e.g. subrepo) - test-duplicateoptions.py, using extensions.loadall() directly To register functions always at loading new extension, this patch moves implementation for extra loading from dispatch._dispatch() to extensions.loadall(). AFAIK, only commands module causes cyclic dependency between extensions module, but this patch imports all related modules just before extra loading in loadall(), in order to centralize them. This patch makes extensions.py depend on many other modules, even though extensions.py itself doesn't. It should be avoided if possible, but I don't have any better idea. Some other places like below aren't reasonable for extra loading, IMHO. - specific function in newly added module: existing callers of extensions.loadall() should invoke it, too - hg.repository() or so: no-repo commands aren't covered by this. BTW, this patch removes _loaded.add(name) on relocation, because dispatch._loaded is used only for extraloaders (for similar reason, "exts" variable is removed, too).

File last commit:

r31095:b4cb86ab default
r33052:45b0e9d0 default
Show More
test-ui-color.py
38 lines | 921 B | text/x-python | PythonLexer
Pulkit Goyal
tests: make test-ui-color use absolute_import
r28915 from __future__ import absolute_import, print_function
Simon Heimberg
cleanup: remove unused imports...
r19322 import os
Pulkit Goyal
tests: make test-ui-color use absolute_import
r28915 from mercurial import (
dispatch,
ui as uimod,
)
Brodie Rao
color: call correct superclass method in write_err...
r11732
# ensure errors aren't buffered
Pierre-Yves David
color: drop the 'colorui' class...
r31095 testui = uimod.ui()
Brodie Rao
color: call correct superclass method in write_err...
r11732 testui.pushbuffer()
Matt Mackall
i18n: wrap false positives for translation detection
r17956 testui.write(('buffered\n'))
testui.warn(('warning\n'))
Brodie Rao
color: call correct superclass method in write_err...
r11732 testui.write_err('error\n')
Pulkit Goyal
py3: make test-ui-color use print_function
r28682 print(repr(testui.popbuffer()))
Idan Kamara
color: check if ui is already a subclass of colorui before wrapping it...
r14516
# test dispatch.dispatch with the same ui object
hgrc = open(os.environ["HGRCPATH"], 'w')
hgrc.write('[extensions]\n')
hgrc.write('color=\n')
hgrc.close()
Yuya Nishihara
ui: factor out ui.load() to create a ui without loading configs (API)...
r30559 ui_ = uimod.ui.load()
Idan Kamara
color: check if ui is already a subclass of colorui before wrapping it...
r14516 ui_.setconfig('ui', 'formatted', 'True')
Idan Kamara
ui: use I/O descriptors internally...
r14614 # we're not interested in the output, so write that to devnull
ui_.fout = open(os.devnull, 'w')
Idan Kamara
color: check if ui is already a subclass of colorui before wrapping it...
r14516 # call some arbitrary command just so we go through
# color's wrapped _runcommand twice.
def runcmd():
dispatch.dispatch(dispatch.request(['version', '-q'], ui_))
runcmd()
Pierre-Yves David
color: drop the 'colorui' class...
r31095 print("colored? %s" % (ui_._colormode is not None))
Idan Kamara
color: check if ui is already a subclass of colorui before wrapping it...
r14516 runcmd()
Pierre-Yves David
color: drop the 'colorui' class...
r31095 print("colored? %s" % (ui_._colormode is not None))