Alessandro Ogier 2022-07-21 17:37:52 +02:00
parent 18990b52c0
commit dbde966947
3 changed files with 54 additions and 2 deletions

View file

@ -3,8 +3,8 @@ Unit tests for typeclass base system
"""
from django.test import override_settings
from evennia.utils.test_resources import BaseEvenniaTest, EvenniaTestCase
from evennia.typeclasses import attributes
from evennia.utils.test_resources import BaseEvenniaTest, EvenniaTestCase
from mock import patch
from parameterized import parameterized
@ -13,6 +13,10 @@ from parameterized import parameterized
# ------------------------------------------------------------
class DictSubclass(dict):
pass
class TestAttributes(BaseEvenniaTest):
def test_attrhandler(self):
key = "testattr"
@ -22,6 +26,14 @@ class TestAttributes(BaseEvenniaTest):
self.obj1.db.testattr = value
self.assertEqual(self.obj1.db.testattr, value)
value = DictSubclass({"fo": "foo", "bar": "bar"})
self.obj1.db.testattr = value
self.assertEqual(self.obj1.db.testattr, value)
value = DictSubclass({"fo": "foo", "bar": "bar", "obj": self.obj2})
self.obj1.db.testattr = value
self.assertEqual(self.obj1.db.testattr, value)
@override_settings(TYPECLASS_AGGRESSIVE_CACHE=False)
@patch("evennia.typeclasses.attributes._TYPECLASS_AGGRESSIVE_CACHE", False)
def test_attrhandler_nocache(self):
@ -35,6 +47,16 @@ class TestAttributes(BaseEvenniaTest):
self.assertEqual(self.obj1.db.testattr, value)
self.assertFalse(self.obj1.attributes.backend._cache)
value = DictSubclass({"fo": "foo", "bar": "bar"})
self.obj1.db.dict_subclass = value
self.assertEqual(self.obj1.db.dict_subclass, value)
self.assertFalse(self.obj1.attributes.backend._cache)
value = DictSubclass({"fo": "foo", "bar": "bar", "obj": self.obj2})
self.obj1.db.dict_subclass = value
self.assertEqual(self.obj1.db.dict_subclass, value)
self.assertFalse(self.obj1.attributes.backend._cache)
def test_weird_text_save(self):
"test 'weird' text type (different in py2 vs py3)"
from django.utils.safestring import SafeText