More tests

This commit is contained in:
Yohann D'ANELLO 2020-11-08 23:48:26 +01:00
parent 3486c865a1
commit 0ab0e6a00c
7 changed files with 22 additions and 11 deletions

View File

@ -7,14 +7,11 @@ from dungeonbattle.tests.screen import FakePad
class Display:
def __init__(self, screen: Any):
self.screen = screen
self.rows = curses.LINES if screen else 4
self.cols = curses.COLS * 4 // 5 if screen else 4
self.rows = curses.LINES if screen else 42
self.cols = curses.COLS * 4 // 5 if screen else 42
def refresh(self) -> None:
raise NotImplementedError
def newpad(self, height: int, width: int) -> Union[FakePad, Any]:
if self.screen:
return curses.newpad(height, width)
else:
return FakePad()
return curses.newpad(height, width) if self.screen else FakePad()

View File

@ -1,5 +1,4 @@
#!/usr/bin/env python
import curses
from typing import Any
from dungeonbattle.display.display import Display

View File

@ -1,7 +1,6 @@
from dungeonbattle.display.display import Display
from dungeonbattle.menus import Menu
from typing import Any
import curses
class MenuDisplay(Display):

View File

@ -1,4 +1,3 @@
import curses
from typing import Any
from dungeonbattle.display.display import Display

View File

@ -4,6 +4,10 @@ from ..interfaces import FightingEntity
class Player(FightingEntity):
maxhealth: int = 20
strength: int = 5
intelligence: int = 1
charisma: int = 1
dexterity: int = 1
constitution: int = 1
level: int = 1
current_xp: int = 0
max_xp: int = 10

View File

@ -1,5 +1,7 @@
import unittest
from dungeonbattle.display.display import Display
from dungeonbattle.display.statsdisplay import StatsDisplay
from dungeonbattle.game import Game, KeyValues, GameMode
from dungeonbattle.menus import MainMenuValues
@ -14,6 +16,7 @@ class TestGame(unittest.TestCase):
def test_load_game(self) -> None:
self.assertRaises(NotImplementedError, Game.load_game, "game.save")
self.assertRaises(NotImplementedError, Display(None).refresh)
def test_key_translation(self) -> None:
"""
@ -37,6 +40,7 @@ class TestGame(unittest.TestCase):
self.game.settings.KEY_RIGHT_SECONDARY), KeyValues.RIGHT)
self.assertEqual(self.game.translate_key(
self.game.settings.KEY_ENTER), KeyValues.ENTER)
self.assertEqual(self.game.translate_key(' '), KeyValues.SPACE)
def test_key_press(self) -> None:
"""
@ -54,7 +58,8 @@ class TestGame(unittest.TestCase):
self.game.handle_key_pressed(KeyValues.ENTER)
self.assertEqual(self.game.state, GameMode.SETTINGS)
self.game.state = GameMode.MAINMENU
self.game.handle_key_pressed(KeyValues.SPACE)
self.assertEqual(self.game.state, GameMode.MAINMENU)
self.game.handle_key_pressed(KeyValues.DOWN)
self.assertEqual(self.game.main_menu.validate(),
@ -95,3 +100,11 @@ class TestGame(unittest.TestCase):
new_y, new_x = self.game.player.y, self.game.player.x
self.assertEqual(new_y, y)
self.assertEqual(new_x, x - 1)
self.game.handle_key_pressed(KeyValues.SPACE)
self.assertEqual(self.game.state, GameMode.MAINMENU)
def test_stats_display(self) -> None:
self.game.current_display = StatsDisplay(None, self.game.player,
42, 42, 0, 0)
self.game.current_display.refresh()

View File

@ -10,5 +10,5 @@ class FakePad:
smincol: int, smaxrow: int, smaxcol: int) -> None:
pass
def clear(self):
def clear(self) -> None:
pass