def test_table_chars(): data = [] data.append({ "total_misses": 10, "total_hits": 115, "who_cares": 42, "short_name": "short", "marketing_source": "The Best" }) data.append({ "total_misses": 150, "short_name": "A very long value goes here", "who_cares": 1977, "sometimes_name": "present and accounted for sir", "total_hits": 15, "marketing_source": "The Worst" }) data.append({ "total_misses": 20, "short_name": "Something", "who_cares": 1977, "sometimes_name": "Here", "total_hits": 10, "marketing_source": "Shorty" }) tp = TablePrint() tph = TablePrintHeader() tp.set_column_char("!") tp.set_header_char("~") tp.set_joint_char("*") # Add headers in order from left to right tph.add("marketing_source", "Marketing Source") tph.add("total_hits", "Total Hits") tph.add("short_name", "Short Name") tph.add("missing_name", "Missing Name") tph.add("sometimes_name", "Sometimes Name") print("\nTest Table Chars results:\n") tp.set_data(data, tph) tp.display_table()
def test_iter(): data = [] data.append({ "total_misses": 10, "total_hits": 115, "who_cares": 42, "short_name": "short", "marketing_source": "The Best" }) data.append({ "total_misses": 150, "short_name": "A very long value goes here", "who_cares": 1977, "sometimes_name": "present and accounted for sir", "total_hits": 15, "marketing_source": "The Worst" }) data.append({ "total_misses": 20, "short_name": "Something", "who_cares": 1977, "sometimes_name": "Here", "total_hits": 10, "marketing_source": "Shorty" }) tp = TablePrint() tph = TablePrintHeader() # Add headers in order from left to right tph.add("marketing_source", "Marketing Source") tph.add("total_hits", "Total Hits") tph.add("short_name", "Short Name") tph.add("missing_name", "Missing Name") tph.add("sometimes_name", "Sometimes Name") print("\nTest table iterator results:\n") tp.set_data(data, tph) for row in tp: print(row)
def test_right(): data = [] data.append({ "total_misses": 11, "total_hits": 116, "who_cares": 42, "short_name": "short", "marketing_source": "The Best" }) data.append({ "total_misses": 151, "short_name": "A very long value goes here", "who_cares": 1978, "sometimes_name": "present and accounted for sir", "total_hits": 16, "marketing_source": "The Worst" }) data.append({ "total_misses": 20, "short_name": "Something", "who_cares": 1977, "sometimes_name": "Here", "total_hits": 10, "marketing_source": "Shorty" }) tp = TablePrint() tph = TablePrintHeader() # Add headers in order from left to right tph.add("marketing_source", "Marketing Source", "right", "right") tph.add("total_hits", "Right Hits", "right", "right") tph.add("short_name", "Short Name", "right", "right") tph.add("missing_name", "Missing Name") tph.add("sometimes_name", "Sometimes Name", "right", "right") print("\nTest right results:\n") tp.print_table(data, tph)
def test_header_defaults(self): index = 0 header_key = ["header_1", "header_2", "header_3"] header_val = ["Header 1", "Header 2", "Header 3"] tph = TablePrintHeader() tph.add(header_key[0], header_val[0]) tph.add(header_key[1], header_val[1]) tph.add(header_key[2], header_val[2]) for header in tph: self.assertEqual(header["key"], header_key[index]) self.assertEqual(header["column_name"], header_val[index]) self.assertEqual(header["header_align"], "center") self.assertEqual(header["column_align"], "center") index += 1
def test_header_mixed(self): index = 0 header_key = [ "header_1", "header_2", "header_3", "header_4", "header_5", "header_6" ] header_val = [ "Header 1", "Header 2", "Header 3", "Header 4", "Header 5", "Header 6" ] header_align = ["center", "left", "right", "left", "right", "center"] column_align = ["left", "right", "left", "center", "center", "right"] tph = TablePrintHeader() tph.add(header_key[0], header_val[0], header_align[0].capitalize(), column_align[0].lower()) tph.add(header_key[1], header_val[1], header_align[1].lower(), column_align[1].capitalize()) tph.add(header_key[2], header_val[2], header_align[2].capitalize(), column_align[2].capitalize()) tph.add(header_key[3], header_val[3], header_align[3].lower(), column_align[3].lower()) tph.add(header_key[4], header_val[4], header_align[4].upper(), column_align[4].lower()) tph.add(header_key[5], header_val[5], header_align[5].lower(), column_align[5].upper()) for header in tph: self.assertEqual(header["key"], header_key[index]) self.assertEqual(header["column_name"], header_val[index]) self.assertEqual(header["header_align"], header_align[index].lower()) self.assertEqual(header["column_align"], column_align[index].lower()) index += 1
def header_tester(self, align): index = 0 header_key = [ "header_1", "header_2", "header_3", "header_4", "header_5", "header_6" ] header_val = [ "Header 1", "Header 2", "Header 3", "Header 4", "Header 5", "Header 6" ] tph = TablePrintHeader() tph.add(header_key[0], header_val[0], align.capitalize(), align.lower()) tph.add(header_key[1], header_val[1], align.lower(), align.capitalize()) tph.add(header_key[2], header_val[2], align.capitalize(), align.capitalize()) tph.add(header_key[3], header_val[3], align.lower(), align.lower()) tph.add(header_key[4], header_val[4], align.upper(), align.lower()) tph.add(header_key[5], header_val[5], align.lower(), align.upper()) for header in tph: self.assertEqual(header["key"], header_key[index]) self.assertEqual(header["column_name"], header_val[index]) self.assertEqual(header["header_align"], align.lower()) self.assertEqual(header["column_align"], align.lower()) index += 1
def test_table_dict(): data = [] data.append({ "misses": 10, "hits": 115, "villan": { "name": "Freddy", "age": 40 }, "director": { "name": "Craven", "sequels": { "first": { "name": "Seq1", "year": 1985 } } }, "victim": { "name": "Mary", "age": 20 }, "short_name": "short" }) data.append({ "misses": 150, "director": { "name": "Carpenter", "sequels": { "first": { "name": "Sq1", "fans": { "name": "mike, one" " eyed pirate" } } } }, "short_name": "A very long value goes here", "villan": { "name": "Jason", "age": 30 }, "sometimes_name": "present and accounted for sir", "hits": 15 }) data.append({ "misses": 20, "short_name": "Something", "sometimes_name": "Here", "hits": 10, "director": { "name": "Donner", "sequels": { "first": { "name": "Sq1", "year": 1987, "fans": { "name": "dave" } } } }, "victim": { "name": "Jane", "age": 25 } }) tp = TablePrint() tph = TablePrintHeader() # Add headers in order from left to right tph.add("hits", "Total Hits") tph.add("villan:name", "Villan Name") tph.add("misses", "Total Misses") tph.add("short_name", "Short Name") tph.add("victim:age", "Victim Age") tph.add("victim:not_here", "Victim Not Here") tph.add("director:sequels:first:year", "Sequel Year") tph.add("director:sequels:first:fans:name", "Fan Name") print("\nTest dictionary entry results:\n") tp.print_table(data, tph)