class Test_challenges_manager_handling_challenges(unittest.TestCase): def setUp(self): init_DB(status="development", folder=db_path) self.assertTrue(os.path.exists(db_path)) load_env_vars() self.db_challenges_manager = ChallengesController(db_path) def tearDown(self): shutil.rmtree(db_path) self.assertFalse(os.path.exists(db_path)) def test_add_new_challenge(self): title = "Tournoi" challenger = "Mathieu" contestant = "David" game = "Mario 64" description = "Desc1" time_limit = 60 self.db_challenges_manager.new_challenge(title=title, challenger=challenger, contestant=contestant, game_name=game, description=description, time_limit=time_limit) challenge = self.db_challenges_manager.get_challenge_details(title) self.assertEqual('new', challenge.status) self.assertEqual(challenger, challenge.user1) self.assertEqual(contestant, challenge.user2) self.assertEqual(description, challenge.content) self.assertEqual(title, challenge.title) self.assertEqual(game, challenge.game) def test_change_status_to_accepted(self): title = "Tournoi" self.test_add_new_challenge() self.db_challenges_manager.accept_challenge(title, "David") challenge = self.db_challenges_manager.get_challenge_details(title) self.assertEqual('accepted', challenge.status) def test_change_status_to_declined(self): title = "Tournoi" self.test_add_new_challenge() self.db_challenges_manager.accept_challenge(title, "David") self.db_challenges_manager.decline_challenge(title, "David") challenge = self.db_challenges_manager.get_challenge_details(title) self.assertEqual('declined', challenge.status) def test_change_status_to_successful(self): title = "Tournoi" self.test_add_new_challenge() self.db_challenges_manager.accept_challenge(title, "David") self.db_challenges_manager.succeed_challenge(title, "Mathieu") challenge = self.db_challenges_manager.get_challenge_details(title) self.assertEqual('won', challenge.status) def test_change_status_to_failed(self): title = "Tournoi" self.test_add_new_challenge() self.db_challenges_manager.accept_challenge(title, "David") self.db_challenges_manager.fail_challenge(title, "Mathieu") challenge = self.db_challenges_manager.get_challenge_details(title) self.assertEqual('lost', challenge.status)
class Test_challenges_manager_get_challenges(unittest.TestCase): def setUp(self): init_DB(status="development", folder=db_path) self.assertTrue(os.path.exists(db_path)) load_env_vars() self.db_challenges_manager = ChallengesController(db_path) def tearDown(self): shutil.rmtree(db_path) self.assertFalse(os.path.exists(db_path)) def test_get_last_n_challenges(self): challenges1 = self.db_challenges_manager.get_last_n_challenges(1) self.assertEqual(1, len(challenges1)) challenges3 = self.db_challenges_manager.get_last_n_challenges(3) self.assertEqual(3, len(challenges3)) challenges10 = self.db_challenges_manager.get_last_n_challenges(10) self.assertNotEqual(10, len(challenges10)) self.assertEqual(4, len(challenges10)) def test_get_challenge_details(self): existing_challenge_name = "Challenge 1" existing_one = self.db_challenges_manager.get_challenge_details( existing_challenge_name) self.assertIsNotNone(existing_one) self.assertEqual(existing_challenge_name, existing_one.title) non_existing_challenge_name = "Horse thingy stuffs" non_existing_one = self.db_challenges_manager.get_challenge_details( non_existing_challenge_name) self.assertIsNone(non_existing_one) def test_get_your_challenges(self): usr = "******" challenges = self.db_challenges_manager.get_your_challenges(usr) self.assertNotEqual([], challenges) usr = "******" challenges = self.db_challenges_manager.get_your_challenges(usr) self.assertEqual([], challenges) def test_get_all_challenges(self): all_challenges = self.db_challenges_manager.get_all_challenges() self.assertEqual(4, len(all_challenges)) def test_get_number_unseen_challenges(self): usr = "******" nb1 = self.db_challenges_manager.get_number_unseen_challenges(usr) self.assertEqual(2, nb1) usr = "******" nb2 = self.db_challenges_manager.get_number_unseen_challenges(usr) self.assertEqual(0, nb2)