From 1e5bb26f5706ab6c7e8e0611763847f9a19050b7 Mon Sep 17 00:00:00 2001 From: Nicolas Margulies Date: Thu, 19 Nov 2020 20:02:44 +0100 Subject: [PATCH] Test logs --- squirrelbattle/display/logsdisplay.py | 3 ++- squirrelbattle/interfaces.py | 1 + squirrelbattle/tests/entities_test.py | 9 +++++++-- squirrelbattle/tests/game_test.py | 12 ++++++++++++ 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/squirrelbattle/display/logsdisplay.py b/squirrelbattle/display/logsdisplay.py index 36adcaa..0d95915 100644 --- a/squirrelbattle/display/logsdisplay.py +++ b/squirrelbattle/display/logsdisplay.py @@ -17,6 +17,7 @@ class LogsDisplay(Display): messages = messages[::-1] self.pad.clear() for i in range(min(self.height, len(messages))): - self.pad.addstr(self.height - i - 1, self.x, messages[i][:self.width]) + self.pad.addstr(self.height - i - 1, self.x, + messages[i][:self.width]) self.pad.refresh(0, 0, self.y, self.x, self.y + self.height, self.x + self.width) diff --git a/squirrelbattle/interfaces.py b/squirrelbattle/interfaces.py index cf94aed..d1baa2a 100644 --- a/squirrelbattle/interfaces.py +++ b/squirrelbattle/interfaces.py @@ -52,6 +52,7 @@ class Map: self.start_x = start_x self.tiles = tiles self.entities = [] + self.logs = Logs() def add_entity(self, entity: "Entity") -> None: """ diff --git a/squirrelbattle/tests/entities_test.py b/squirrelbattle/tests/entities_test.py index 5cd6ad5..2c4b5d6 100644 --- a/squirrelbattle/tests/entities_test.py +++ b/squirrelbattle/tests/entities_test.py @@ -42,9 +42,11 @@ class TestEntities(unittest.TestCase): self.assertEqual(entity.maxhealth, entity.health) self.assertEqual(entity.strength, 2) for _ in range(9): - self.assertIsNone(entity.hit(entity)) + self.assertEqual(entity.hit(entity), + "beaver hits beaver. beaver takes 2 damage.") self.assertFalse(entity.dead) - self.assertIsNone(entity.hit(entity)) + self.assertEqual(entity.hit(entity), "beaver hits beaver. " + + "beaver takes 2 damage. beaver dies.") self.assertTrue(entity.dead) entity = Rabbit() @@ -64,6 +66,9 @@ class TestEntities(unittest.TestCase): self.map.tick() self.assertTrue(entity.y == 2 and entity.x == 6) self.assertEqual(old_health - entity.strength, self.player.health) + self.assertEqual(self.map.logs.messages[-1], + f"{entity.name} hits {self.player.name}. \ +{self.player.name} takes {entity.strength} damage.") # Fight the rabbit old_health = entity.health diff --git a/squirrelbattle/tests/game_test.py b/squirrelbattle/tests/game_test.py index 424d86a..f29a443 100644 --- a/squirrelbattle/tests/game_test.py +++ b/squirrelbattle/tests/game_test.py @@ -256,6 +256,18 @@ class TestGame(unittest.TestCase): self.game.handle_key_pressed(KeyValues.ENTER) self.assertEqual(self.game.state, GameMode.MAINMENU) + def test_logs(self) -> None: + """ + Tests the use of logs + """ + self.game.logs.add_message("Hello World !") + self.assertEqual(self.game.logs.messages, ["Hello World !"]) + self.game.logs.add_messages(["Hello", "World"]) + self.assertEqual(self.game.logs.messages, ["Hello World !", + "Hello", "World"]) + self.game.logs.clear() + self.assertEqual(self.game.logs.messages, []) + def test_dead_screen(self) -> None: """ Kill player and render dead screen.