コード例 #1
0
ファイル: tests.py プロジェクト: torbjorntorbjorn/golfstats
    def test_game_creator_not_in_players(self):
        arena = make_a_whole_arena()
        players = make_players(5)
        extra_player = make_players()[0]

        game = Game.objects.create(
            # TODO: This doesn't look great
            course=arena.course_set.all()[0],
            creator=extra_player,
            created=datetime.now(),
        )
        game.players = players

        # Check that game won't start with invalid creator
        self.assertRaises(ValidationError, game.start)

        # Switch to a valid creator and start game
        game.creator = players[0]
        game.save()
        game.start()
        game.save()

        # Switch back to invalid creator
        game.creator = extra_player
        game.save()

        # Assert that we can't finish game with invalid creator
        self.assertRaises(ValidationError, game.finish)
コード例 #2
0
ファイル: tests.py プロジェクト: torbjorntorbjorn/golfstats
def make_game():
    arena = make_a_whole_arena()
    players = make_players(5)

    game = Game.objects.create(
        # TODO: This doesn't look greait
        course=arena.course_set.all()[0],
        creator=players[0],
        created=datetime.now(),
    )
    game.players = players

    return game
コード例 #3
0
ファイル: tests.py プロジェクト: torbjorntorbjorn/golfstats
    def test_game_requires_players(self):
        arena = make_a_whole_arena()
        course = make_course(arena)[0]
        player = make_players()[0]

        game = Game(
            course=course,
            creator=player,
            created=datetime.now(),
        )
        game.save()
        game.players = [player]

        game.start()

        # Check that game doesn't finish without players
        self.assertRaises(ValidationError, game.finish)
コード例 #4
0
ファイル: tests.py プロジェクト: torbjorntorbjorn/golfstats
    def test_create(self):
        # Ensure we have no game
        self.assertEqual(Game.objects.all().count(), 0)

        arena = make_a_whole_arena()
        players = make_players(5)
        course = arena.course_set.all()[0]

        c = get_logged_in_client()
        r = c.get("/games/create/")

        self.assertContains(r, 'Create or update a game', count=1)

        c, user = get_logged_in_client(True)

        # Include our auto-generated player in the players of this game
        players.append(user.player)

        # Create the game, our clients player will be the game creator
        r = c.post('/games/create/', {
            "course": course.id,
            "players": [p.id for p in players],
        })

        self.assertEqual(r.status_code, 302)

        # Ensure we have created a new game
        self.assertEqual(Game.objects.all().count(), 1)

        # Get our created game
        game = Game.objects.all()[0]

        # Assert that all posted players are in game
        for player in players:
            self.assertIn(player, game.players.all())

        # Our posted creator is the creator ?
        self.assertEqual(user.player.id, game.creator.id)
コード例 #5
0
ファイル: tests.py プロジェクト: jonejone/golfstats
    def test_create_game(self):
        # Make course, arena and players
        players = make_players(3)
        arena = make_a_whole_arena()
        course = make_course(arena)[0]

        # Prepare data for new game
        game_data = {
            "players": [p.id for p in players],
            "course": course.id,
        }

        game_payload = simplejson.dumps(game_data)

        # POST data to api
        c = get_logged_in_client()
        r = c.post("/api/games/", game_payload,
            content_type="application/json")

        # Response looks good ?
        self.assertEqual(r.status_code, 201)

        res = simplejson.loads(r.content)
        created_game = Game.objects.get(id=res['id'])

        # Check that we are on the right course
        self.assertEqual(created_game.course.id, course.id)

        # Check that players are correct
        self.assertEqual(created_game.players.count(),
            len(game_data['players']))

        for player in created_game.players.all():
            self.assertIn(player.id, game_data['players'])

        # Check that game has "Created" state
        self.assertEqual(created_game.state, Game.STATE_CREATED)