# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: chuck.bell@oracle.com-20110107164106-lh09qk3lpkdef1sc # target_branch: file:///Users/cbell/source/bzr_public/mysql-\ # utilities/ # testament_sha1: 9df70d64ff5e269b4f9e09d145eab0deb651e6bd # timestamp: 2011-01-11 15:08:43 -0500 # base_revision_id: chuck.bell@oracle.com-20101213191938-\ # q0qu6ps9m96fe2dh # # Begin patch === modified file 'mysql/utilities/common/format.py' --- mysql/utilities/common/format.py 2010-12-03 21:52:48 +0000 +++ mysql/utilities/common/format.py 2011-01-07 16:41:06 +0000 @@ -53,10 +53,14 @@ quiet[in] if True, do not print """ i = 0 + num_cols = len(columns) for col in columns: if not quiet: file.write("| ") - file.write("{0:<{1}} ".format("%s" % row[i], col_widths[i])) + if num_cols == 1: + file.write("{0:<{1}} ".format("%s" % row, col_widths[i])) + else: + file.write("{0:<{1}} ".format("%s" % row[i], col_widths[i])) i += 1 if not quiet: file.write("|") @@ -101,14 +105,22 @@ stop = len(columns) for row in rows: for i in range(0, stop): - col_size = len("%s" % row[i]) + 1 + if stop == 1: + col_size = len("%s" % row) + 1 + else: + col_size = len("%s" % row[i]) + 1 if col_size > col_widths[i]: col_widths[i] = col_size # print header if print_header: _format_col_separator(file, columns, col_widths, quiet) - _format_row_separator(file, columns, col_widths, columns, quiet) + if len(columns) == 1: + _format_row_separator(file, columns, col_widths, columns[0], + quiet) + else: + _format_row_separator(file, columns, col_widths, columns, + quiet) _format_col_separator(file, columns, col_widths, quiet) for row in rows: _format_row_separator(file, columns, col_widths, row, quiet) === added file 'test/test/format_list.py' --- test/test/format_list.py 1970-01-01 00:00:00 +0000 +++ test/test/format_list.py 2011-01-07 16:41:06 +0000 @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +import mysql_test +import os +import sys + +class test(mysql_test.System_test): + """Test format module + In this test, we execute the format_tabular_list and format_vertical_list + methods in the format module. + """ + + def check_prerequisites(self): + return self.check_num_servers(0) + + def setup(self): + self.test_file = open('format_test', 'w') + return True + + def run(self): + + from mysql.utilities.common.format import format_tabular_list + from mysql.utilities.common.format import format_vertical_list + + rows_1 = [('one',),('two',),('three',)] + cols_1 = ['a'] + rows_2 = [('one',None),('two',None),('three',None)] + cols_2 = ['a','b'] + rows_3 = [('one',None,31),('two',None,32),('three',None,33)] + cols_3 = ['a','b','c'] + + format_tabular_list(self.test_file, cols_1, rows_1, True) + format_tabular_list(self.test_file, cols_2, rows_2, True) + format_tabular_list(self.test_file, cols_3, rows_3, True) + format_vertical_list(self.test_file, cols_1, rows_1) + format_vertical_list(self.test_file, cols_2, rows_2) + format_vertical_list(self.test_file, cols_3, rows_3) + self.test_file.close() + + self.test_file = open('format_test', 'r') + for line in self.test_file.readlines(): + self.results.append(line) + self.test_file.close() + + return True + + def get_result(self): + return self.compare(__name__, self.results) + + def record(self): + return self.save_result_file(__name__, self.results) + + def cleanup(self): + os.unlink('format_test') + return True === added file 'test/test/format_list.result' --- test/test/format_list.result 1970-01-01 00:00:00 +0000 +++ test/test/format_list.result 2011-01-04 02:56:28 +0000 @@ -0,0 +1,51 @@ ++--------+ +| a | ++--------+ +| one | +| two | +| three | ++--------+ ++--------+-------+ +| a | b | ++--------+-------+ +| one | None | +| two | None | +| three | None | ++--------+-------+ ++--------+-------+-----+ +| a | b | c | ++--------+-------+-----+ +| one | None | 31 | +| two | None | 32 | +| three | None | 33 | ++--------+-------+-----+ +************************* 1. row ************************* + a: one +************************* 2. row ************************* + a: two +************************* 3. row ************************* + a: three +3 rows. +************************* 1. row ************************* + a: one + b: None +************************* 2. row ************************* + a: two + b: None +************************* 3. row ************************* + a: three + b: None +3 rows. +************************* 1. row ************************* + a: one + b: None + c: 31 +************************* 2. row ************************* + a: two + b: None + c: 32 +************************* 3. row ************************* + a: three + b: None + c: 33 +3 rows. # Begin bundle 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