evennia/evennia/utils/tests/test_dbserialize.py
2020-07-27 21:12:06 +02:00

59 lines
2.1 KiB
Python

"""
Tests for dbserialize module
"""
from django.test import TestCase
from evennia.utils import dbserialize
from evennia.objects.objects import DefaultObject
class TestDbSerialize(TestCase):
"""
Database serialization operations.
"""
def setUp(self):
self.obj = DefaultObject(db_key="Tester",)
self.obj.save()
def test_constants(self):
self.obj.db.test = 1
self.obj.db.test += 1
self.assertEqual(self.obj.db.test, 2)
self.obj.db.test -= 3
self.assertEqual(self.obj.db.test, -1)
self.obj.db.test *= -2
self.assertEqual(self.obj.db.test, 2)
self.obj.db.test /= 2
self.assertEqual(self.obj.db.test, 1)
def test_saverlist(self):
self.obj.db.test = [1, 2, 3]
self.assertEqual(self.obj.db.test, [1, 2, 3])
self.obj.db.test.append("4")
self.assertEqual(self.obj.db.test, [1, 2, 3, "4"])
self.obj.db.test.insert(1, 1.5)
self.assertEqual(self.obj.db.test, [1, 1.5, 2, 3, "4"])
self.obj.db.test.pop()
self.assertEqual(self.obj.db.test, [1, 1.5, 2, 3])
self.obj.db.test.pop(0)
self.assertEqual(self.obj.db.test, [1.5, 2, 3])
self.obj.db.test.reverse()
self.assertEqual(self.obj.db.test, [3, 2, 1.5])
def test_saverlist__sort(self):
self.obj.db.test = [3, 2, 1.5]
self.obj.db.test.sort()
self.assertEqual(self.obj.db.test, [1.5, 2, 3])
self.obj.db.test.extend([0, 4, 5])
self.assertEqual(self.obj.db.test, [1.5, 2, 3, 0, 4, 5])
self.obj.db.test.sort()
self.assertEqual(self.obj.db.test, [0, 1.5, 2, 3, 4, 5])
self.obj.db.test = [[4, 5, 6], [1, 2, 3]]
self.assertEqual(self.obj.db.test, [[4, 5, 6], [1, 2, 3]])
self.obj.db.test.sort()
self.assertEqual(self.obj.db.test, [[1, 2, 3], [4, 5, 6]])
self.obj.db.test = [{1: 0}, {0: 1}]
self.assertEqual(self.obj.db.test, [{1: 0}, {0: 1}])
self.obj.db.test.sort(key=lambda d: str(d))
self.assertEqual(self.obj.db.test, [{0: 1}, {1: 0}])