Rev 3026: Detect terminal width in TTYTaskDisplay. in http://people.ubuntu.com/~robertc/baz2.0/nested-pb

Robert Collins robertc at robertcollins.net
Tue Nov 20 09:05:04 GMT 2007


At http://people.ubuntu.com/~robertc/baz2.0/nested-pb

------------------------------------------------------------
revno: 3026
revision-id:robertc at robertcollins.net-20071120090454-c8z4vn27l3k4tok9
parent: robertc at robertcollins.net-20071120085757-yud1ied1pn0cjcbx
committer: Robert Collins <robertc at robertcollins.net>
branch nick: pb.simplify
timestamp: Tue 2007-11-20 20:04:54 +1100
message:
  Detect terminal width in TTYTaskDisplay.
modified:
  bzrlib/progress.py             progress.py-20050610070202-df9faaab791964c0
  bzrlib/tests/test_progress.py  test_progress.py-20060308160359-978c397bc79b7fda
=== modified file 'bzrlib/progress.py'
--- a/bzrlib/progress.py	2007-11-20 08:57:57 +0000
+++ b/bzrlib/progress.py	2007-11-20 09:04:54 +0000
@@ -49,6 +49,7 @@
 lazy_import(globals(), """
 from bzrlib import (
     errors,
+    osutils,
     )
 """)
 
@@ -397,6 +398,10 @@
 class TTYTaskDisplay(StreamTaskDisplay):
     """Display the task on a TTY file, using \r's to update a single line."""
 
+    def __init__(self, task, stream, terminal_width=osutils.terminal_width):
+        StreamTaskDisplay.__init__(self, task, stream)
+        self.terminal_width = terminal_width()
+
     def clear(self):
         pass
 

=== modified file 'bzrlib/tests/test_progress.py'
--- a/bzrlib/tests/test_progress.py	2007-11-20 08:53:59 +0000
+++ b/bzrlib/tests/test_progress.py	2007-11-20 09:04:54 +0000
@@ -527,13 +527,16 @@
     def test_construct(self):
         task = KnownLengthTask('message', 1)
         output = _TTYStringIO()
-        display = TTYTaskDisplay(task, output)
+        # Override terminal width detection for testing
+        display = TTYTaskDisplay(task, output, terminal_width=lambda:10)
+        self.assertEqual(10, display.terminal_width)
 
     def get_display(self):
         """Get a task, output and display to test with."""
         task = KnownLengthTask('message', 1)
         output = _TTYStringIO()
-        display = TTYTaskDisplay(task, output)
+        # Override terminal width detection for testing
+        display = TTYTaskDisplay(task, output, terminal_width=lambda:40)
         return task, output, display
 
     def test_usable(self):



More information about the bazaar-commits mailing list