Resolve merge conflicts
This commit is contained in:
commit
19bd7ce0b7
19 changed files with 32231 additions and 105 deletions
|
|
@ -2,9 +2,10 @@
|
|||
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 +14,10 @@ from parameterized import parameterized
|
|||
# ------------------------------------------------------------
|
||||
|
||||
|
||||
class DictSubclass(dict):
|
||||
pass
|
||||
|
||||
|
||||
class TestAttributes(BaseEvenniaTest):
|
||||
def test_attrhandler(self):
|
||||
key = "testattr"
|
||||
|
|
@ -22,6 +27,25 @@ class TestAttributes(BaseEvenniaTest):
|
|||
self.obj1.db.testattr = value
|
||||
self.assertEqual(self.obj1.db.testattr, value)
|
||||
|
||||
# "plain" subclasses
|
||||
value = DictSubclass({"fo": "foo", "bar": "bar"})
|
||||
self.obj1.db.testattr = value
|
||||
self.assertEqual(self.obj1.db.testattr, value)
|
||||
|
||||
self.obj1.db.testattr["fo"] = "foo2"
|
||||
value.update({"fo": "foo2"})
|
||||
self.assertEqual(self.obj1.db.testattr, value)
|
||||
self.assertEqual(self.obj1.attributes.get("testattr"), value)
|
||||
|
||||
# nested subclasses
|
||||
value = DictSubclass({"nested": True, "deep": DictSubclass({"fo": "foo", "bar": "bar"})})
|
||||
self.obj1.db.testattr = value
|
||||
|
||||
self.obj1.db.testattr["deep"]["fo"] = "nemo"
|
||||
value["deep"].update({"fo": "nemo"})
|
||||
self.assertEqual(self.obj1.db.testattr, value)
|
||||
self.assertEqual(self.obj1.attributes.get("testattr"), value)
|
||||
|
||||
@override_settings(TYPECLASS_AGGRESSIVE_CACHE=False)
|
||||
@patch("evennia.typeclasses.attributes._TYPECLASS_AGGRESSIVE_CACHE", False)
|
||||
def test_attrhandler_nocache(self):
|
||||
|
|
@ -35,6 +59,27 @@ class TestAttributes(BaseEvenniaTest):
|
|||
self.assertEqual(self.obj1.db.testattr, value)
|
||||
self.assertFalse(self.obj1.attributes.backend._cache)
|
||||
|
||||
# "plain" subclasses
|
||||
value = DictSubclass({"fo": "foo", "bar": "bar"})
|
||||
self.obj1.db.testattr = value
|
||||
self.assertEqual(self.obj1.db.testattr, value)
|
||||
|
||||
self.obj1.db.testattr["fo"] = "foo2"
|
||||
value.update({"fo": "foo2"})
|
||||
self.assertEqual(self.obj1.db.testattr, value)
|
||||
self.assertEqual(self.obj1.attributes.get("testattr"), value)
|
||||
self.assertFalse(self.obj1.attributes.backend._cache)
|
||||
|
||||
# nested subclasses
|
||||
value = DictSubclass({"nested": True, "deep": DictSubclass({"fo": "foo", "bar": "bar"})})
|
||||
self.obj1.db.testattr = value
|
||||
|
||||
self.obj1.db.testattr["deep"]["fo"] = "nemo"
|
||||
value["deep"].update({"fo": "nemo"})
|
||||
self.assertEqual(self.obj1.db.testattr, value)
|
||||
self.assertEqual(self.obj1.attributes.get("testattr"), 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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue