~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

Rework test_script a little bit.


Don't allow someone to request a stdin request to echo.
Echo never reads from stdin, it just echos its arguments.
You use 'cat' if you want to read from stdin.

A few other fixes because the tests were using filenames
that are actually illegal on Windows, rather than just
nonexistant.


Change the exception handling for commands so that
unknown errors don't get silently squashed and then
turn into hard-to-debug errors later.

test_script now passes on Windows.

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
from bzrlib.symbol_versioning import (
57
57
    deprecated_function,
58
58
    deprecated_in,
 
59
    deprecated_method,
59
60
    suppress_deprecation_warnings,
60
61
    )
61
62
 
101
102
            registry.Registry.register(self, k_unsquished, cmd,
102
103
                                       override_existing=decorate, info=info)
103
104
        except KeyError:
104
 
            trace.log_error('Two plugins defined the same command: %r' % k)
105
 
            trace.log_error('Not loading the one in %r' %
106
 
                            sys.modules[cmd.__module__])
107
 
            trace.log_error('Previously this command was registered from %r' %
108
 
                            sys.modules[previous.__module__])
 
105
            trace.warning('Two plugins defined the same command: %r' % k)
 
106
            trace.warning('Not loading the one in %r' %
 
107
                sys.modules[cmd.__module__])
 
108
            trace.warning('Previously this command was registered from %r' %
 
109
                sys.modules[previous.__module__])
109
110
        return previous
110
111
 
111
112
    def register_lazy(self, command_name, aliases, module_name):
383
384
        # List of standard options directly supported
384
385
        self.supported_std_options = []
385
386
 
 
387
    @deprecated_method(deprecated_in((2, 1, 0)))
386
388
    def _maybe_expand_globs(self, file_list):
387
389
        """Glob expand file_list if the platform does not do that itself.
388
390
 
 
391
        Not used anymore, now that the bzr command-line parser globs on
 
392
        Windows.
 
393
 
389
394
        :return: A possibly empty list of unicode paths.
390
395
 
391
396
        Introduced in bzrlib 0.18.
392
397
        """
393
 
        if not file_list:
394
 
            file_list = []
395
 
        if sys.platform == 'win32':
396
 
            file_list = win32utils.glob_expand(file_list)
397
 
        return list(file_list)
 
398
        return file_list
398
399
 
399
400
    def _usage(self):
400
401
        """Return single-line grammar for this command.
1035
1036
            ret = apply_coveraged(opt_coverage_dir, run, *run_argv)
1036
1037
        else:
1037
1038
            ret = run(*run_argv)
1038
 
        if 'memory' in debug.debug_flags:
1039
 
            trace.debug_memory('Process status after command:', short=False)
1040
1039
        return ret or 0
1041
1040
    finally:
1042
1041
        # reset, in case we may do other commands later within the same
1043
1042
        # process. Commands that want to execute sub-commands must propagate
1044
1043
        # --verbose in their own way.
 
1044
        if 'memory' in debug.debug_flags:
 
1045
            trace.debug_memory('Process status after command:', short=False)
1045
1046
        option._verbosity_level = saved_verbosity_level
1046
1047
 
1047
1048
 
1114
1115
        argv = new_argv
1115
1116
    ret = run_bzr_catch_errors(argv)
1116
1117
    trace.mutter("return code %d", ret)
 
1118
    osutils.report_extension_load_failures()
1117
1119
    return ret
1118
1120
 
1119
1121