def test_shrink_multiple_equal_columns(self): """ We have 2 columns of equal sizes so we shrink them equally """ header = ['a', 'b'] data = [[ '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb22a8aa22f096b0b', '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb22a8aa22f096b0b' ], ['x', 'afdadsfdasfasfdasdfdasfadsfadsfdas']] sizes = cli_table.max_column_sizes(header, data) self.assertEqual([64, 64], sizes) self.assertEqual([30, 30], cli_table.shrink_to_fit(sizes, 60))
def test_long_values_shrink_column1(self): """ We only shrink the first column since it's much larger than the second """ header = ['Name', 'Some Attribute'] data = [[ '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb22a8aa22f096b0b', 'blahblahblah' ], ['Volume1', 'blah']] sizes = cli_table.max_column_sizes(header, data) self.assertEqual([64, 14], sizes) self.assertEqual([46, 14], cli_table.shrink_to_fit(sizes, 60))
def test_long_values_shrink_column2(self): """ We only shrink the second column since it's much larger than the first """ header = ['a', 'b'] data = [[ 'x', '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb22a8aa22f096b0b' ], ['x', 'afdadsfdasfasfdasdfdasfadsfadsfdas']] sizes = cli_table.max_column_sizes(header, data) self.assertEqual([1, 64], sizes) self.assertEqual([1, 49], cli_table.shrink_to_fit(sizes, 50))
def test_long_values_shrink_column2(self): """ We only shrink the second column since it's much larger than the first """ header = ['a', 'b'] data = [ ['x', '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb22a8aa22f096b0b' ], ['x', 'afdadsfdasfasfdasdfdasfadsfadsfdas'] ] sizes = cli_table.max_column_sizes(header, data) self.assertEqual([1, 64], sizes) self.assertEqual([1, 49], cli_table.shrink_to_fit(sizes, 50))
def test_shrink_2_columns_but_not_3rd(self): """ We can shrink the 2 larger first columns by themselves until they fit and are still larger than the 3rd column """ header = ['a', 'b', 'c'] data = [[ '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb22a8aa22f096b0b', '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb22a8aa22f096b0b', '2ff76be0906d860c7b7dc79cb6321a' ]] sizes = cli_table.max_column_sizes(header, data) self.assertEqual([64, 64, 30], sizes) self.assertEqual([45, 45, 30], cli_table.shrink_to_fit(sizes, 120))
def test_shrink_2_equal_one_smaller_columns_equally(self): """ Since the shrinking required is greater than the reduction of the first 2 columns to the size of the 3rd, we end up shrinking all the columns until they fit. """ header = ['a', 'b', 'c'] data = [[ '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb22a8aa22f096b0b', '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb22a8aa22f096b0b', '2ff76be0906d860c7b7dc79cb6321a3f6a7fb9addf01233eb2' ]] sizes = cli_table.max_column_sizes(header, data) self.assertEqual([64, 64, 50], sizes) self.assertEqual([20, 20, 20], cli_table.shrink_to_fit(sizes, 60))
def test_max_column_sizes(self): header = ['Name', 'Greeting'] data = [['Bill', 'Hello'], ['Jennifer', 'Sup'], ['Dave', 'How\'s it hangin?']] self.assertEqual([8, 16], cli_table.max_column_sizes(header, data))