示例#1
0
    def test_create(self):
        c = get_logged_in_client()
        r = c.get("/baskets/create/")

        self.assertContains(r, "Create or update basket", count=1)

        c = get_logged_in_client()
        r = c.post("/baskets/create/", {"arena": self.arena.id, "description": "Some basket description"})

        self.assertEqual(r.status_code, 302)

        self.assertEqual(Basket.objects.filter(description="Some basket description").count(), 1)
示例#2
0
    def test_create(self):
        c = get_logged_in_client()
        r = c.get("/courses/create/")

        self.assertContains(r, "Create or update course", count=1)

        c = get_logged_in_client()
        r = c.post("/courses/create/", {"arena": self.arena.id, "name": "Some kind of course"})

        self.assertEqual(r.status_code, 302)

        self.assertEqual(Course.objects.filter(name="Some kind of course").count(), 1)
示例#3
0
    def test_create(self):
        c = get_logged_in_client()
        r = c.get("/arenas/create/")

        self.assertContains(r, "Create or update arena", count=1)

        c = get_logged_in_client()
        r = c.post("/arenas/create/", {"name": "Some arena name"})

        self.assertEqual(r.status_code, 302)

        self.assertEqual(Arena.objects.filter(name="Some arena name").count(), 1)
示例#4
0
    def test_create(self):
        c = get_logged_in_client()
        r = c.get("/holes/create/")

        self.assertContains(r, "Create or update hole", count=1)

        c = get_logged_in_client()
        r = c.post("/holes/create/", {"tee": self.tee.id, "basket": self.basket.id, "par": "1000"})  # Funky test value

        self.assertEqual(r.status_code, 302)

        self.assertEqual(Hole.objects.filter(par=1000).count(), 1)
示例#5
0
    def test_create(self):
        c = get_logged_in_client()
        r = c.get("/courseholes/create/")

        self.assertContains(r, "Create or update coursehole", count=1)

        c = get_logged_in_client()
        r = c.post(
            "/courseholes/create/",
            {"course": self.course.id, "hole": self.hole.id, "order": 0, "name": "Test coursehole"},
        )

        self.assertEqual(r.status_code, 302)

        self.assertEqual(CourseHole.objects.filter(name="Test coursehole").count(), 1)
示例#6
0
    def test_create(self):
        c = get_logged_in_client()
        r = c.get("/players/create/")

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

        c = get_logged_in_client()
        r = c.post('/players/create/', {
            "name": "Test player",
        })

        self.assertEqual(r.status_code, 302)

        self.assertEqual(
            Player.objects.filter(name="Test player").count(), 1)
示例#7
0
    def test_get_game(self):
        #  Grab an empty response
        c = get_logged_in_client()
        r = c.get("/api/games/")

        # Check response code is reasonable
        self.assertEqual(r.status_code, 200)

        # Should be valid JSON
        res = simplejson.loads(r.content)

        # No players yet, should be empty
        self.assertEqual(res, [])

        # Create two games
        game1 = make_finished_game()
        game2 = make_finished_game()

        # Get list of games
        c = get_logged_in_client()
        r = c.get("/api/games/")

        self.assertEqual(r.status_code, 200)

        resp = simplejson.loads(r.content)

        # Both games in JSON ?
        self.assertEqual(len(resp), 2)

        # Get game ids from JSON response
        resp_ids = [x["id"] for x in resp]

        # Check that both of our games are in there
        self.assertIn(game1.id, resp_ids)
        self.assertIn(game2.id, resp_ids)

        # Get single game
        c = get_logged_in_client()
        r = c.get("/api/games/%s/" % (game1.id))

        self.assertEqual(r.status_code, 200)

        resp = simplejson.loads(r.content)

        # Check that fields hold proper values
        self.assertEqual(game1.id, resp["id"])
        self.assertEqual(game1.state, resp["state"])
        self.assertEqual(game1.verified, resp["verified"])
示例#8
0
    def test_detail(self):
        tee = make_tees(self.arena)[0]

        c = get_logged_in_client()
        r = c.get("/tees/%s/" % (tee.id))

        self.assertContains(r, tee.description, count=1)
示例#9
0
    def test_get_gameholes(self):
        # Create a finished game
        game = make_finished_game()

        # Grab gameholes JSON
        c = get_logged_in_client()
        r = c.get("/api/games/%s/gameholes/" % (game.id))

        self.assertEqual(r.status_code, 200)

        resp = simplejson.loads(r.content)

        # We have the same amount of gameholes in JSON and db ?
        self.assertEqual(len(resp), len(game.gamehole_set.all()))

        # Check that we can get all our gameholes from JSON
        for resp_gh in resp:
            gh = game.gamehole_set.get(
                player__id=resp_gh["player_id"],
                coursehole__id=resp_gh["coursehole_id"],
                throws=resp_gh["throws"],
                ob_throws=resp_gh["ob_throws"],
            )

            self.assertNotEqual(gh.id, None)
示例#10
0
    def test_detail(self):
        player = make_players()[0]

        c = get_logged_in_client()
        r = c.get("/players/%s/" % (player.id))

        self.assertContains(r, "Player %s" % (player.name), count=1)
示例#11
0
    def test_detail(self):
        game = make_game()

        c = get_logged_in_client()
        r = c.get("/games/%s/" % (game.id))

        self.assertContains(r, "Game %s" % (game.id), count=1)
示例#12
0
    def test_detail(self):
        hole = make_hole(self.tee, self.basket, 3)

        c = get_logged_in_client()
        r = c.get("/holes/%s/" % (hole.id))

        self.assertContains(r, "Hole %s" % (hole.id), count=1)
示例#13
0
    def test_delete(self):
        coursehole = make_course_holes(self.course, [self.hole])[0]

        c = get_logged_in_client()
        r = c.get("/courseholes/%s/delete/" % (coursehole.id))

        self.assertContains(r, coursehole.name, count=1)

        # Simply posting there should delete the instance
        c = get_logged_in_client()
        r = c.post("/courseholes/%s/delete/" % (coursehole.id))

        self.assertEqual(r.status_code, 302)

        # Check that we can't actually load the deleted instance
        self.assertRaises(CourseHole.DoesNotExist, CourseHole.objects.get, id=coursehole.id)
示例#14
0
    def test_detail(self):
        coursehole = make_course_holes(self.course, [self.hole])[0]

        c = get_logged_in_client()
        r = c.get("/courseholes/%s/" % (coursehole.id))

        self.assertContains(r, "Coursehole %s" % (coursehole.name), count=1)
示例#15
0
    def test_delete(self):
        hole = make_hole(self.tee, self.basket, 3)

        c = get_logged_in_client()
        r = c.get("/holes/%s/delete/" % (hole.id))

        self.assertContains(r, "hole %s" % (hole.id), count=1)

        # Simply posting there should delete the instance
        c = get_logged_in_client()
        r = c.post("/holes/%s/delete/" % (hole.id))

        self.assertEqual(r.status_code, 302)

        # Check that we can't actually load the deleted instance
        self.assertRaises(Hole.DoesNotExist, Hole.objects.get, id=hole.id)
示例#16
0
    def test_detail(self):
        course = make_course(self.arena)[0]

        c = get_logged_in_client()
        r = c.get("/courses/%s/" % (course.id))

        self.assertContains(r, course.name, count=1)
示例#17
0
    def test_delete(self):
        # Pull up a test basket
        basket = make_baskets(self.arena)[0]

        c = get_logged_in_client()
        r = c.get("/baskets/%s/delete/" % (basket.id))

        self.assertContains(r, "Delete basket %s" % basket.id, count=1)

        # Simply posting there should delete the instance
        c = get_logged_in_client()
        r = c.post("/baskets/%s/delete/" % (basket.id))

        self.assertEqual(r.status_code, 302)

        # Check that we can't actually load the deleted instance
        self.assertRaises(Basket.DoesNotExist, Basket.objects.get, id=basket.id)
示例#18
0
    def test_delete(self):
        game = make_game()

        c = get_logged_in_client()
        r = c.get("/games/%s/delete/" % (game.id))

        self.assertContains(r, "game %s" % (game.id), count=1)

        # Simply posting there should delete the instance
        c = get_logged_in_client()
        r = c.post("/games/%s/delete/" % (game.id))

        self.assertEqual(r.status_code, 302)

        # Check that we can't actually load the deleted instance
        self.assertRaises(Game.DoesNotExist,
            Game.objects.get, id=game.id)
示例#19
0
    def test_detail(self):
        # Pull up a test basket
        basket = make_baskets(self.arena)[0]

        c = get_logged_in_client()
        r = c.get("/baskets/%s/" % (basket.id))

        self.assertContains(r, "Basket %s" % basket.id, count=1)
示例#20
0
    def test_delete(self):
        # Pull up a test arena
        tee = make_tees(self.arena)[0]

        c = get_logged_in_client()
        r = c.get("/tees/%s/delete/" % (tee.id))

        self.assertContains(r, tee.description, count=1)

        # Simply posting there should delete the instance
        c = get_logged_in_client()
        r = c.post("/tees/%s/delete/" % (tee.id))

        self.assertEqual(r.status_code, 302)

        # Check that we can't actually load the deleted instance
        self.assertRaises(Tee.DoesNotExist, Tee.objects.get, id=tee.id)
示例#21
0
    def test_delete(self):
        # Pull up a test arena
        arena = make_arenas()[0]

        c = get_logged_in_client()
        r = c.get("/arenas/%s/delete/" % (arena.id))

        self.assertContains(r, arena.name, count=1)

        # Simply posting there should delete the instance
        c = get_logged_in_client()
        r = c.post("/arenas/%s/delete/" % (arena.id))

        self.assertEqual(r.status_code, 302)

        # Check that we can't actually load the deleted instance
        self.assertRaises(Arena.DoesNotExist, Arena.objects.get, id=arena.id)
示例#22
0
    def test_detail(self):
        # Pull up a test arena
        arena = make_arenas()[0]

        c = get_logged_in_client()
        r = c.get("/arenas/%s/" % (arena.id))

        self.assertContains(r, arena.name, count=1)
示例#23
0
    def test_delete(self):
        player = make_players()[0]

        c = get_logged_in_client()
        r = c.get("/players/%s/delete/" % (player.id))

        self.assertContains(r, player.name, count=1)

        # Simply posting there should delete the instance
        c = get_logged_in_client()
        r = c.post("/players/%s/delete/" % (player.id))

        self.assertEqual(r.status_code, 302)

        # Check that we can't actually load the deleted instance
        self.assertRaises(player.DoesNotExist,
            Player.objects.get, id=player.id)
示例#24
0
    def test_update(self):
        # Pull up a test arena
        course = make_course(self.arena)[0]

        c = get_logged_in_client()
        r = c.get("/courses/%s/edit/" % (course.id))

        self.assertContains(r, course.name, count=1)

        c = get_logged_in_client()
        r = c.post("/courses/%s/edit/" % (course.id), {"arena": self.arena.id, "name": "new name"})

        self.assertEqual(r.status_code, 302)

        # Ensure that our original and renamed arena
        # have the same IDs
        renamed_course = Course.objects.get(name="new name")
        self.assertEqual(renamed_course.id, course.id)
示例#25
0
    def test_update(self):
        # Pull up a test arena
        tee = make_tees(self.arena)[0]

        c = get_logged_in_client()
        r = c.get("/tees/%s/edit/" % (tee.id))

        self.assertContains(r, tee.description, count=1)

        c = get_logged_in_client()
        r = c.post("/tees/%s/edit/" % (tee.id), {"arena": self.arena.id, "description": "new description"})

        self.assertEqual(r.status_code, 302)

        # Ensure that our original and renamed arena
        # have the same IDs
        renamed_tee = Tee.objects.get(description="new description")
        self.assertEqual(renamed_tee.id, tee.id)
示例#26
0
    def test_update(self):
        # Pull up a test arena
        arena = make_arenas()[0]

        c = get_logged_in_client()
        r = c.get("/arenas/%s/edit/" % (arena.id))

        self.assertContains(r, arena.name, count=1)

        c = get_logged_in_client()
        r = c.post("/arenas/%s/edit/" % (arena.id), {"name": "new name"})

        self.assertEqual(r.status_code, 302)

        # Ensure that our original and renamed arena
        # have the same IDs
        renamed_arena = Arena.objects.get(name="new name")
        self.assertEqual(renamed_arena.id, arena.id)
示例#27
0
    def test_update(self):
        player = make_players()[0]

        c = get_logged_in_client()
        r = c.get("/players/%s/edit/" % (player.id))

        self.assertContains(r, player.name, count=1)

        c = get_logged_in_client()
        r = c.post("/players/%s/edit/" % (player.id), {
            "name": "new name",
        })

        self.assertEqual(r.status_code, 302)

        # Ensure that our original and renamed arena
        # have the same IDs
        renamed_player = Player.objects.get(name="new name")
        self.assertEqual(renamed_player.id, player.id)
示例#28
0
    def test_update(self):
        # Pull up a test basket
        basket = make_baskets(self.arena)[0]

        c = get_logged_in_client()
        r = c.get("/baskets/%s/edit/" % (basket.id))

        self.assertContains(r, basket.description, count=1)

        c = get_logged_in_client()
        r = c.post("/baskets/%s/edit/" % (basket.id), {"arena": self.arena.id, "description": "new description"})

        self.assertEqual(r.status_code, 302)

        # Ensure that our original and renamed basket
        # have the same IDs
        renamed_basket = Basket.objects.get(description="new description")

        self.assertEqual(renamed_basket.id, basket.id)
示例#29
0
    def test_get(self):
        #  Grab an empty response
        c = get_logged_in_client()
        r = c.get("/api/players/")

        # Check response code is reasonable
        self.assertEqual(r.status_code, 200)

        # Should be valid JSON
        res = simplejson.loads(r.content)

        # Only our auto-created player should exist
        self.assertEqual(len(res), 1)

        # Create some test players, get and parse
        players = make_players(5)

        c = get_logged_in_client()
        r = c.get("/api/players/")

        resp = simplejson.loads(r.content)

        # We got all our players, and our auto-generated player, back ?
        self.assertEqual(len(players) + 1, len(resp))

        # Received names
        resp_names = [x["name"] for x in resp]

        for player in players:
            self.assertIn(player.name, resp_names)

        # Check a single player
        player = players[0]

        c = get_logged_in_client()
        r = c.get("/api/players/%s/" % (player.id))

        self.assertEqual(r.status_code, 200)

        resp = simplejson.loads(r.content)

        self.assertEqual(resp["name"], player.name)
示例#30
0
    def test_update(self):
        coursehole = make_course_holes(self.course, [self.hole])[0]

        c = get_logged_in_client()
        r = c.get("/courseholes/%s/edit/" % (coursehole.id))

        self.assertContains(r, coursehole.name, count=1)

        c = get_logged_in_client()
        r = c.post(
            "/courseholes/%s/edit/" % (coursehole.id),
            {"course": self.course.id, "hole": self.hole.id, "order": 0, "name": "new name"},
        )

        self.assertEqual(r.status_code, 302)

        # Ensure that our original and renamed arena
        # have the same IDs
        renamed_coursehole = CourseHole.objects.get(name="new name")
        self.assertEqual(renamed_coursehole.id, coursehole.id)