import lxml.html from django.test import TestCase from apps.lyric.models import User class GameboardViewTest(TestCase): def setUp(self): self.user = User.objects.create(email="capman@test.io") self.client.force_login(self.user) response = self.client.get("/gameboard/") self.parsed = lxml.html.fromstring(response.content) def test_gameboard_requires_login(self): self.client.logout() response = self.client.get("/gameboard/") self.assertRedirects( response, "/?next=/gameboard/", fetch_redirect_response=False ) def test_gameboard_renders(self): response = self.client.get("/gameboard/") self.assertEqual(response.status_code, 200) def test_gameboard_shows_my_games_applet(self): [_] = self.parsed.cssselect("#id_applet_my_games") def test_gameboard_shows_new_game_applet(self): [_] = self.parsed.cssselect("#id_applet_new_game") def test_gameboard_shows_game_kit_btn(self): [_] = self.parsed.cssselect("#id_game_kit_btn") def test_gameboard_shows_game_gear(self): [_] = self.parsed.cssselect("#id_game_gear") def test_my_games_has_no_game_items_for_new_user(self): game_items = self.parsed.cssselect("#id_applet_my_games .game-item") self.assertEqual(len(game_items), 0) def test_game_kit_has_coin_on_a_string(self): [_] = self.parsed.cssselect("#id_game_kit #id_kit_coin_on_a_string") def test_game_kit_has_free_token(self): [_] = self.parsed.cssselect("#id_game_kit #id_kit_free_token_0") def test_game_kit_has_card_deck_placeholder(self): [_] = self.parsed.cssselect("#id_game_kit #id_kit_card_deck") def test_game_kit_has_dice_set_placeholder(self): [_] = self.parsed.cssselect("#id_game_kit #id_kit_dice_set")