Source code for evennia.contrib.game_systems.cooldowns.tests

"""
Cooldowns tests.

"""

from mock import patch

from evennia.utils.test_resources import BaseEvenniaTest

from . import cooldowns


[docs]@patch("evennia.contrib.game_systems.cooldowns.cooldowns.time.time", return_value=0.0) class TestCooldowns(BaseEvenniaTest):
[docs] def setUp(self): super().setUp() self.handler = cooldowns.CooldownHandler(self.char1)
[docs] def test_empty(self, mock_time): self.assertEqual(self.handler.all, []) self.assertTrue(self.handler.ready("a", "b", "c")) self.assertEqual(self.handler.time_left("a", "b", "c"), 0)
[docs] def test_add(self, mock_time): self.assertEqual(self.handler.add, self.handler.set) self.handler.add("a", 10) self.assertFalse(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 10) mock_time.return_value = 9.0 self.assertFalse(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 1) mock_time.return_value = 10.0 self.assertTrue(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 0)
[docs] def test_add_float(self, mock_time): self.assertEqual(self.handler.time_left("a"), 0) self.assertEqual(self.handler.time_left("a", use_int=False), 0) self.assertEqual(self.handler.time_left("a", use_int=True), 0) self.handler.add("a", 5.5) self.assertEqual(self.handler.time_left("a"), 5.5) self.assertEqual(self.handler.time_left("a", use_int=False), 5.5) self.assertEqual(self.handler.time_left("a", use_int=True), 6)
[docs] def test_add_multi(self, mock_time): self.handler.add("a", 10) self.handler.add("b", 5) self.handler.add("c", 3) self.assertFalse(self.handler.ready("a", "b", "c")) self.assertEqual(self.handler.time_left("a", "b", "c"), 10) self.assertEqual(self.handler.time_left("a", "b"), 10) self.assertEqual(self.handler.time_left("a", "c"), 10) self.assertEqual(self.handler.time_left("b", "c"), 5) self.assertEqual(self.handler.time_left("c", "c"), 3)
[docs] def test_add_none(self, mock_time): self.handler.add("a", None) self.assertTrue(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 0)
[docs] def test_add_negative(self, mock_time): self.handler.add("a", -5) self.assertTrue(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 0)
[docs] def test_add_overwrite(self, mock_time): self.handler.add("a", 5) self.handler.add("a", 10) self.handler.add("a", 3) self.assertFalse(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 3)
[docs] def test_extend(self, mock_time): self.assertEqual(self.handler.extend("a", 10), 10) self.assertFalse(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 10) self.assertEqual(self.handler.extend("a", 10), 20) self.assertFalse(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 20)
[docs] def test_extend_none(self, mock_time): self.assertEqual(self.handler.extend("a", None), 0) self.assertTrue(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 0) self.handler.add("a", 10) self.assertEqual(self.handler.extend("a", None), 10) self.assertEqual(self.handler.time_left("a"), 10)
[docs] def test_extend_negative(self, mock_time): self.assertEqual(self.handler.extend("a", -5), 0) self.assertTrue(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 0) self.handler.add("a", 10) self.assertEqual(self.handler.extend("a", -5), 5) self.assertEqual(self.handler.time_left("a"), 5)
[docs] def test_extend_float(self, mock_time): self.assertEqual(self.handler.extend("a", -5.5), 0) self.assertTrue(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 0.0) self.assertEqual(self.handler.time_left("a", use_int=False), 0.0) self.assertEqual(self.handler.time_left("a", use_int=True), 0) self.handler.add("a", 10.5) self.assertEqual(self.handler.extend("a", -5.25), 5.25) self.assertEqual(self.handler.time_left("a"), 5.25) self.assertEqual(self.handler.time_left("a", use_int=False), 5.25) self.assertEqual(self.handler.time_left("a", use_int=True), 6)
[docs] def test_reset_non_existent(self, mock_time): self.handler.reset("a") self.assertTrue(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 0)
[docs] def test_reset(self, mock_time): self.handler.set("a", 10) self.handler.reset("a") self.assertTrue(self.handler.ready("a")) self.assertEqual(self.handler.time_left("a"), 0)
[docs] def test_clear(self, mock_time): self.handler.add("a", 10) self.handler.add("b", 10) self.handler.add("c", 10) self.handler.clear() self.assertTrue(self.handler.ready("a", "b", "c")) self.assertEqual(self.handler.time_left("a", "b", "c"), 0)
[docs] def test_cleanup(self, mock_time): self.handler.add("a", 10) self.handler.add("b", 5) self.handler.add("c", 5) self.handler.add("d", 3.5) mock_time.return_value = 6.0 self.handler.cleanup() self.assertEqual(self.handler.time_left("b", "c", "d"), 0) self.assertEqual(self.handler.time_left("a"), 4) self.assertEqual(list(self.handler.data.keys()), ["a"])
[docs] def test_cleanup_doesnt_delete_anything(self, mock_time): self.handler.add("a", 10) self.handler.add("b", 5) self.handler.add("c", 5) self.handler.add("d", 3.5) mock_time.return_value = 1.0 self.handler.cleanup() self.assertEqual(self.handler.time_left("d"), 2.5) self.assertEqual(self.handler.time_left("b", "c"), 4) self.assertEqual(self.handler.time_left("a"), 9) self.assertEqual(list(self.handler.data.keys()), ["a", "b", "c", "d"])