def test_format_default(self): console = Console() output = console.format('The quick brown fox jumps over the lazy dog') self.assertEqual( repr(output), repr('The quick brown fox jumps over the lazy dog' + ' ' * 37) )
def test_write(self): stream = StringIO() console = Console(stream) console.write('The quick brown fox jumps over the lazy dog') output = stream.getvalue() self.assertEqual( repr(output), repr('The quick brown fox jumps over the lazy dog') )
def test_same_line(self): stream = StringIO() console = Console(stream) console.same_line('The quick brown fox jumps over the lazy dog') output = stream.getvalue() self.assertEqual( repr(output), repr( '\r' 'The quick brown fox jumps over the lazy dog' + ' ' * 37 ) )
def test_success(self): stream = StringIO() console = Console(stream) console.success('The quick brown fox jumps over the lazy dog') output = stream.getvalue() self.assertEqual( repr(output), repr( '\r\x1b[32m' 'The quick brown fox jumps over the lazy dog' '\x1b[39m' + ' ' * 27 + '\n' ) )
def test_format_many_options(self): console = Console() output = console.format( 'The quick brown fox jumps over the lazy dog', fg_color='RED', bg_color='YELLOW', font='BOLD', min_length=10 ) self.assertEqual( repr(output), repr( '\x1b[2m\x1b[31m\x1b[43m' 'The quick brown fox jumps over the lazy dog' '\x1b[49m\x1b[39m\x1b[0m' ) )
def test_format_fg_color(self): console = Console() output = console.format( 'The quick brown fox jumps over the lazy dog', fg_color='RED' ) self.assertEqual( repr(output), repr( '\x1b[31m' 'The quick brown fox jumps over the lazy dog' '\x1b[39m' + ' ' * 27 ) )
def test_progress_bar_console_no_eta(self): stream = StringIO() console = Console(stream) progress_bar = ProgressBar(console) for i in range(1, 51): progress_bar.progress(i, 50) output = stream.getvalue() self.assertEqual( [ln.strip() for ln in output.split('\r')], [ '', '[##### ] 20.00% (10 / 50) ETA: ? |', '[######### ] 40.00% (20 / 50) ETA: ? /', '[############# ] 60.00% (30 / 50) ETA: ? -', '[################# ] 80.00% (40 / 50) ETA: ? \\', '[#####################] 100.00% (50 / 50) ETA: 0:00:00' ] )
def __init__(self, root_url=None, error_class=None, stdout=None, stderr=None, get_input=None, **options): self.root_url = root_url or '/' self.error_class = error_class or RuntimeError self.stdout = stdout or sys.stdout self.stderr = stderr or sys.stderr self.dry_run = options['dry_run'] self.no_interactive = options['no_interactive'] self.quiet = options['quiet'] self.force = options['force'] self.git_add = options['git_add'] self.no_color = options.get('no_color') self.console = Console(self.stdout) self.get_input = get_input or default_get_input