~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_ui.py

  • Committer: Martin Pool
  • Date: 2006-10-15 11:57:58 UTC
  • mto: This revision was merged to the branch mainline in revision 2119.
  • Revision ID: mbp@sourcefrog.net-20061015115758-041391cf08503621
Clean up BzrNewError, other exception classes and users.

This cleans up the probably-mistaken BzrNewError behaviour of using error
class docstrings as their format string.  Instead errors can define a _fmt
attribute with the same meaning.  The docstring is now reserved for its
regular purpose of documentation for programmers.  This behaviour is added to
BzrError.  BzrNewError is left in place for compatibility but no builtin
errors use it anymore and it gives a deprecation warning on construction.

BzrError now accepts either a single preformatted string, or a set of named
parameters to be substituted in to a format string for that class.  This 
behaviour is cleaned up and a couple of callers that depended on the
Python2.4-style exception args tuple are fixed.

Display of unprintable errors is slightly more robust.

errors.IncompatibleFormat was defined twice (shadowing the first
definition), so one use was disambiguated to IncompatibleBundleFormat.

UnsupportedEOLMarker called the wrong superclass constructor.

test_time_creates_benchmark_in_result was too dependent on benchmark
timing and has been loosened.

Some error representations changed slightly because of this (e.g. in use
of punctuation.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
189
189
            self.apply_redirected(
190
190
                None, factory.stdout, factory.stdout, factory.get_boolean, "what do you want")
191
191
            )
 
192
        # FIXME: This assumes the factory's going to produce a spinner-style
 
193
        # progress bar, but it won't if this is run from a dumb terminal (e.g.
 
194
        # from inside gvim.) -- mbp 20061014
 
195
        #
192
196
        # use a regular expression so that we don't depend on the particular
193
197
        # screen width - could also set and restore $COLUMN if that has
194
198
        # priority on all platforms, but it doesn't at present.
198
202
            "\r   *" 
199
203
            "\rwhat do you want\\? \\[y/n\\]:what do you want\\? \\[y/n\\]:", 
200
204
            output):
201
 
            self.fail("didn't match factory output %r, %s" % (factory, output))
 
205
            self.fail("didn't match factory output %r, %r" % (factory, output))