~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_progress.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-10-10 07:23:07 UTC
  • mfrom: (2067.1.1 urandom-56883)
  • Revision ID: pqm@pqm.ubuntu.com-20061010072307-037a6f63da8a1bdd
(John Arbash Meinel) Handle exceptions while opening /dev/urandom

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006, 2007 Canonical Ltd
 
1
# Copyright (C) 2006 by Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
19
19
 
20
20
from bzrlib import errors
21
21
from bzrlib.progress import (
22
 
        DummyProgress,
23
 
        ChildProgress,
 
22
        DummyProgress, ChildProgress,
24
23
        TTYProgressBar,
25
24
        DotsProgressBar,
26
25
        ProgressBarStack,
244
243
                         '\r                   \r',
245
244
                         out.getvalue())
246
245
 
247
 
    def test_noninteractive_progress(self):
248
 
        out = _NonTTYStringIO()
249
 
        pb = self.get_nested(out, 'xterm')
250
 
        self.assertIsInstance(pb, DummyProgress)
251
 
        try:
252
 
            pb.update('foo', 1, 2)
253
 
            pb.update('bar', 2, 2)
254
 
        finally:
255
 
            pb.finished()
256
 
        self.assertEqual('', out.getvalue())
257
 
 
258
246
    def test_dots_progress(self):
259
 
        # make sure we get the right progress bar when not on a terminal
 
247
        # Make sure the ProgressBarStack thinks it is
 
248
        # not writing out to a terminal, and thus uses a 
 
249
        # DotsProgressBar
260
250
        out = _NonTTYStringIO()
261
 
        pb = self.get_nested(out, 'xterm', 'dots')
 
251
        pb = self.get_nested(out, 'xterm')
262
252
        self.assertIsInstance(pb, DotsProgressBar)
263
253
        try:
264
254
            pb.update('foo', 1, 2)
265
255
            pb.update('bar', 2, 2)
266
256
        finally:
267
257
            pb.finished()
 
258
 
268
259
        self.assertEqual('foo: .'
269
260
                         '\nbar: .'
270
261
                         '\n',
276
267
        out = cStringIO.StringIO()
277
268
        pb = self.get_nested(out, 'xterm')
278
269
        pb.finished()
279
 
        self.assertIsInstance(pb, DummyProgress)
 
270
        self.assertIsInstance(pb, DotsProgressBar)
280
271
 
281
272
    def test_dumb_progress(self):
282
 
        # using a terminal that can't do cursor movement
 
273
        # Make sure the ProgressBarStack thinks it is writing out to a 
 
274
        # terminal, but it is the emacs 'dumb' terminal, so it uses
 
275
        # Dots
283
276
        out = _TTYStringIO()
284
277
        pb = self.get_nested(out, 'dumb')
285
278
        pb.finished()
286
 
        self.assertIsInstance(pb, DummyProgress)
 
279
        self.assertIsInstance(pb, DotsProgressBar)
287
280
 
288
281
    def test_progress_env_tty(self):
289
282
        # The environ variable BZR_PROGRESS_BAR controls what type of
297
290
        # Even though we are not a tty, the env_var will override
298
291
        self.assertIsInstance(pb, TTYProgressBar)
299
292
 
 
293
    def test_progress_env_dots(self):
 
294
        # Even though we are in a tty, the env_var will override
 
295
        out = _TTYStringIO()
 
296
        pb = self.get_nested(out, 'xterm', 'dots')
 
297
        pb.finished()
 
298
        self.assertIsInstance(pb, DotsProgressBar)
 
299
 
300
300
    def test_progress_env_none(self):
301
301
        # Even though we are in a valid tty, no progress
302
302
        out = _TTYStringIO()