class TestLadderMethods(unittest.TestCase): def setUp(self): mock_db = Database("Test_Ladder", ["Jim", "John", "Bob", "Bill", "Kev"]) self.ladder = Ladder("Test_Ladder", mock_db) self.ladder.table = ["Jim", "John", "Bob", "Bill", "Kev"] def test_add_two_new_players(self): self.ladder.table = ["Jim", "John", "Bob", "Bill", "Kev"] expected_table = [ "Jim", "John", "Bob", "Bill", "Kev", "Gazza", "Carlson" ] self.ladder.add_new_score("Gazza", "Carlson") for x in range(0, len(self.ladder.table)): self.assertEqual(self.ladder.table[x], expected_table[x]) def test_add_one_new_winning_player(self): self.ladder.table = ["Jim", "John", "Bob", "Bill", "Kev"] expected_table = ["Jim", "John", "Bob", "Gazza", "Bill", "Kev"] self.ladder.add_new_score("Gazza", "Bill") for x in range(0, len(self.ladder.table)): self.assertEqual(self.ladder.table[x], expected_table[x]) def test_add_one_new_losing_player(self): self.ladder.table = ["Jim", "John", "Bob", "Bill", "Kev"] expected_table = ["Jim", "John", "Bob", "Bill", "Kev", "Gazza"] self.ladder.add_new_score("John", "Gazza") for x in range(0, len(self.ladder.table)): self.assertEqual(self.ladder.table[x], expected_table[x]) def test_existing_competing_players(self): self.ladder.table = ["Jim", "John", "Bob", "Bill", "Kev"] expected_table = ["Jim", "Bill", "John", "Bob", "Kev"] self.ladder.add_new_score("Bill", "John") for x in range(0, len(self.ladder.table)): self.assertEqual(self.ladder.table[x], expected_table[x]) def test_print_ladder(self): captured_output = StringIO.StringIO() sys.stdout = captured_output self.ladder.print_ladder() expected_output = "+---------------+\n| Test_Ladder |\n+-------+-------+\n" \ "| Name | Rank |\n+-------+-------+\n| Jim | 1 |\n" \ "| John | 2 |\n| Bob | 3 |\n| Bill | 4 |\n" \ "| Kev | 5 |\n+-------+-------+\n" self.assertEqual(captured_output.getvalue(), expected_output) def test_list_ladders(self): captured_output = StringIO.StringIO() sys.stdout = captured_output self.ladder.list_ladders() expected_output = "+-------------+\n| League Name |\n+-------------+\n" \ "| taste_card |\n| emis |\n| global |\n" \ "+-------------+\n" self.assertEqual(captured_output.getvalue(), expected_output) def test_get_pos(self): self.ladder.table = ["Jim", "John", "Bob", "Bill", "Kev"] test_cases = [["Bob", 2], ["Gregory", False], [233144, False]] for tc in test_cases: expected_output = tc[1] actual_output = self.ladder.get_pos(tc[0]) self.assertEqual(expected_output, actual_output)