def test_indented_notes(self): self.assertEqual( format_sysinfo( notes=["Something's wrong", "You should look at it", "Really"], indent=">>"), ">>=> Something's wrong\n" ">>=> You should look at it\n" ">>=> Really")
def test_more_notes(self): self.assertEqual( format_sysinfo( notes=["Something's wrong", "You should look at it", "Really" ]), "=> Something's wrong\n" "=> You should look at it\n" "=> Really")
def test_header_and_footnote(self): # Warming up. self.assertEqual( format_sysinfo(headers=[("Header", "Value")], footnotes=["Footnote"]), "Header: Value\n" "\n" "Footnote")
def test_header_note_and_footnote(self): # Nice. self.assertEqual( format_sysinfo(headers=[("Header", "Value")], notes=["Note"], footnotes=["Footnote"]), "Header: Value\n" "\n" "=> Note\n" "\n" "Footnote")
def test_wrap_long_notes(self): self.assertEqual( format_sysinfo(notes=[ "I do believe that a very long note, such as one that is " "longer than about 50 characters, should wrap at the " "specified width." ], width=50, indent="Z"), """\ Z=> I do believe that a very long note, such as one that is longer than about 50 characters, should wrap at the specified width.""")
def test_value_alignment(self): output = format_sysinfo([("Header one", "Value one"), ("Header2", "Value2"), ("Header3", "Value3"), ("Header4", "Value4"), ("Header5", "Value five")], width=45) # These headers and values were crafted to cover several cases: # # - Header padding (Header2 and Header3) # - Value padding (Value2) # - Lack of value padding due to a missing last column (Value3) # - Lack of value padding due to being a last column (Value4) # self.assertEqual( output, "Header one: Value one Header4: Value4\n" "Header2: Value2 Header5: Value five\n" "Header3: Value3")
def test_indented_headers_notes_and_footnotes(self): # Hot! self.assertEqual( format_sysinfo(headers=[("Header1", "Value1"), ("Header2", "Value2"), ("Header3", "Value3")], notes=["Note1", "Note2"], footnotes=["Footnote1", "Footnote2"], indent=" ", width=36), " Header1: Value1 Header3: Value3\n" " Header2: Value2\n" "\n" " => Note1\n" " => Note2\n" "\n" " Footnote1\n" " Footnote2")
def test_one_header(self): output = format_sysinfo([("Header", "Value")]) self.assertEqual(output, "Header: Value")
def test_indented_footnotes(self): # Barely more interesting. self.assertEqual( format_sysinfo(footnotes=["Graphs at http://...", "Lunch at ..."], indent=">>"), ">>Graphs at http://...\n" ">>Lunch at ...")
def test_more_footnotes(self): # Still dumb. self.assertEqual( format_sysinfo(footnotes=["Graphs at http://...", "Lunch at ..."]), "Graphs at http://...\n" "Lunch at ...")
def test_one_footnote(self): # Pretty dumb. self.assertEqual(format_sysinfo(footnotes=["Graphs at http://..."]), "Graphs at http://...")
def test_header_and_note(self): self.assertEqual( format_sysinfo(headers=[("Header", "Value")], notes=["Note"]), "Header: Value\n" "\n" "=> Note")
def test_parallel_headers_with_just_enough_space(self): output = format_sysinfo([("Header1", "Value1"), ("Header2", "Value2")], width=34) self.assertEqual(output, "Header1: Value1 Header2: Value2")
def test_stacked_headers_which_barely_doesnt_fit(self): output = format_sysinfo([("Header1", "Value1"), ("Header2", "Value2")], width=33) self.assertEqual(output, "Header1: Value1\nHeader2: Value2")
def test_no_headers(self): output = format_sysinfo([]) self.assertEqual(output, "")
def test_parallel_and_stacked_headers(self): headers = [("Header%d" % i, "Value%d" % i) for i in range(1, 6)] output = format_sysinfo(headers) self.assertEqual( output, "Header1: Value1 Header3: Value3 Header5: Value5\n" "Header2: Value2 Header4: Value4")
def test_indent_headers_stacked_which_barely_doesnt_fit(self): output = format_sysinfo([("Header1", "Value1"), ("Header2", "Value2")], indent=">>", width=35) self.assertEqual(output, ">>Header1: Value1\n" ">>Header2: Value2")
def test_indent_headers_in_parallel_with_just_enough_space(self): output = format_sysinfo([("Header1", "Value1"), ("Header2", "Value2")], indent=">>", width=36) self.assertEqual(output, ">>Header1: Value1 Header2: Value2")
def test_stacked_headers_with_clearly_insufficient_space(self): output = format_sysinfo([("Header1", "Value1"), ("Header2", "Value2")], width=1) self.assertEqual(output, "Header1: Value1\n" "Header2: Value2")
def test_one_note(self): self.assertEqual(format_sysinfo(notes=["Something's wrong!"]), "=> Something's wrong!")
def show_output(result): print( format_sysinfo(sysinfo.get_headers(), sysinfo.get_notes(), sysinfo.get_footnotes(), indent=" "))