Exemplo n.º 1
0
 def setUp(self):
     HuntUser.objects.all().delete()
     Landmark.objects.all().delete()
     Game.objects.all().delete()
     game = Game(name="game", running=False)
     game.save()
     lm = Landmark(name="dummy",
                   clue="dummy",
                   question="dummy",
                   answer="dummy",
                   order_num=-1)
     lm.save()
     self.maker = gamemaker.GameMaker()
     self.maker.make_team(["team1", "password1"])
     self.t = team.Team()
     lm1 = Landmark(name="landmark1",
                    clue="clue1",
                    question="question1",
                    answer="answer1",
                    order_num=-1)
     lm2 = Landmark(name="landmark2",
                    clue="clue2",
                    question="question2",
                    answer="answer2",
                    order_num=-1)
     lm1.save()
     lm2.save()
Exemplo n.º 2
0
class TestMakerCheckStatus(TestCase):
    def setUp(self):
        HuntUser.objects.all().delete()
        Landmark.objects.all().delete()
        lm = Landmark(name="dummy",
                      clue="dummy",
                      question="dummy",
                      answer="dummy",
                      order_num=-1)
        lm.save()
        Game.objects.all().delete()
        self.game = Game(name="game", running=False, time_start=timezone.now())
        self.game.save()
        self.game_maker = gamemaker.GameMaker()

    def test_status_single_team(self):
        self.game_maker.make_team(["team1", "password1"])
        self.assertEquals(
            self.game_maker.display_status(),
            "Team: team1\nScore: 0\nPenalties: 0\n\nThere is currently no game running",
            "Bad single team return")

    def test_status_multiple_teams(self):
        self.game_maker.make_team(["team1", "password1"])
        self.game_maker.make_team(["team2", "password2"])
        self.assertEqual(
            self.game_maker.display_status(),
            "Team: team1\nScore: 0\nPenalties: 0\n\nTeam: team2\nScore: 0\nPenalties: 0\n\n"
            "There is currently no game running",
            "Cannot find entries in two team list")
Exemplo n.º 3
0
 def setUp(self):
     HuntUser.objects.all().delete()
     Landmark.objects.all().delete()
     Game.objects.all().delete()
     game = Game(name="game", running=False)
     game.save()
     lm = Landmark(name="dummy",
                   clue="dummy",
                   question="dummy",
                   answer="dummy",
                   order_num=-1)
     lm.save()
     self.maker = gamemaker.GameMaker()
Exemplo n.º 4
0
 def setUp(self):
     dummy_landmark = Landmark(name="dummy",
                               clue="dummy",
                               question="dummy",
                               answer="dummy",
                               order_num=-1)
     dummy_landmark.save()
     Game.objects.all().delete()
     game = Game(name="game", running=False)
     game.save()
     self.maker = gamemaker.GameMaker()
     self.maker.make_team(["team1", "password1"])
     self.maker.make_team(["team2", "password1"])
     self.maker.add_landmark(["landmark1", "clue1", "q1", "a1"])
     self.maker.add_landmark(["landmark2", "clue2", "q2", "a2"])
     self.maker.create_game(["landmark1", "landmark2"])
     self.t = team.Team()
Exemplo n.º 5
0
 def setUp(self):
     Landmark.objects.all().delete()
     dummy_landmark = Landmark(name="dummy",
                               clue="dummy",
                               question="dummy",
                               answer="dummy",
                               order_num=-1)
     dummy_landmark.save()
     team1 = HuntUser(name="team1",
                      password="******",
                      current_landmark=dummy_landmark)
     team1.save()
     Game.objects.all().delete()
     self.game = Game(name="game", running=False)
     self.game.save()
     self.t = team.Team()
     self.maker = gamemaker.GameMaker()
Exemplo n.º 6
0
class TestMakerCreateGame(TestCase):
    def setUp(self):
        HuntUser.objects.all().delete()
        Landmark.objects.all().delete()
        Game.objects.all().delete()
        self.game = Game(name="game", running=False, time_start=timezone.now())
        self.game.save()
        lm = Landmark(name="dummy",
                      clue="dummy",
                      question="dummy",
                      answer="dummy",
                      order_num=-1)
        lm.save()
        self.maker = gamemaker.GameMaker()
        self.maker.make_team(["team1", "password1"])
        self.t = team.Team()
        lm1 = Landmark(name="landmark1",
                       clue="clue1",
                       question="question1",
                       answer="answer1",
                       order_num=-1)
        lm2 = Landmark(name="landmark2",
                       clue="clue2",
                       question="question2",
                       answer="answer2",
                       order_num=-1)
        lm1.save()
        lm2.save()

    def test_create_game_no_landmarks(self):
        self.assertEqual("Need at least one landmark to create a game",
                         self.maker.create_game([]),
                         "Error: can't create a game without any landmarks")

    def test_create_game_one_landmark(self):
        self.assertEqual(
            "Game has been created!", self.maker.create_game(["landmark1"]),
            "Error: game with one landmark should have been created")
        cur = HuntUser.objects.get(name="team1").current_landmark
        lm1 = Landmark.objects.get(name="landmark1")
        self.assertEqual(
            0, lm1.order_num,
            "Error: landmark1 order_num should be 0, instead is " +
            str(lm1.order_num))

    def test_create_game_invalid_landmark(self):
        self.assertEqual(
            "Landmark inv is not a valid landmark!",
            self.maker.create_game(["inv"]),
            "Error: adding a landmark that doesn't exist shouldn't be valid")

    def test_create_game_started(self):
        self.maker.create_game(["landmark1"])
        self.game.running = True
        self.game.save()
        self.assertEqual(
            "Game is already in progress!",
            self.maker.create_game(["landmark1"]),
            "Error: game shouldn't have been created while a game is currently running"
        )

    def test_create_game_multiple_landmarks(self):
        self.assertEqual(
            "Game has been created!",
            self.maker.create_game(["landmark1", "landmark2"]),
            "Error: game with two landmarks should have been created")
        cur = HuntUser.objects.get(name="team1").current_landmark
        lm1 = Landmark.objects.get(name="landmark1")
        lm2 = Landmark.objects.get(name="landmark2")
        self.assertEqual(
            0, lm1.order_num,
            "Error: landmark1 order_num should be 0, instead is " +
            str(lm1.order_num))
        self.assertEqual(
            1, lm2.order_num,
            "Error: landmark2 order_num should be 1, instead is " +
            str(lm2.order_num))
Exemplo n.º 7
0
class TestTeamRequestClue(TestCase):
    def setUp(self):
        Landmark.objects.all().delete()
        dummy_landmark = Landmark(name="dummy",
                                  clue="dummy",
                                  question="dummy",
                                  answer="dummy",
                                  order_num=-1)
        dummy_landmark.save()
        team1 = HuntUser(name="team1",
                         password="******",
                         current_landmark=dummy_landmark)
        team1.save()
        Game.objects.all().delete()
        self.game = Game(name="game", running=False)
        self.game.save()
        self.t = team.Team()
        self.maker = gamemaker.GameMaker()

    def test_request_no_game_running(self):
        self.assertEqual(
            "There is no game running!", self.t.request_clue("team1"),
            "Error: can't get a clue when there is no game running")

    def test_request_no_landmarks_added(self):
        self.game.running = True
        self.game.save()
        self.assertEqual(
            "Not at a valid landmark", self.t.request_clue("team1"),
            "Error: cannot get a clue when there are no landmarks")

    def test_request_good(self):
        self.maker.add_landmark(["landmark1", "clue1", "q1", "a1"])
        self.maker.create_game(["landmark1"])
        self.maker.start_game()
        self.assertEqual("clue1", self.t.request_clue("team1"),
                         "Error: should have returned clue1")

    def test_clue_time_up(self):
        self.maker.add_landmark(["landmark1", "clue1", "q1", "a1"])
        self.maker.create_game(["landmark1"])
        self.maker.start_game()
        team1 = HuntUser.objects.get(name="team1")
        game = Game.objects.get(name="game")
        period = timedelta(minutes=game.game_period)
        game.time_start -= period
        game.save()
        self.assertEqual("Time is up!", self.t.request_clue("team1"),
                         "Error: game should have ended when 1 hour passed")
        game = Game.objects.get(name="game")
        self.assertFalse(
            game.running,
            "Error: game_running should be false when 1 hour passed")

    def test_request_at_end(self):
        self.maker.add_landmark(["landmark1", "clue1", "q1", "a1"])
        self.maker.create_game(["landmark1"])
        self.maker.start_game()
        team1 = HuntUser.objects.get(name="team1")
        team1.game_ended = True
        team1.save()
        self.assertEqual(
            "You've already finished the game!", self.t.request_clue("team1"),
            "Error: shouldn't be able to receive clue when at the end of the game"
        )