mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 21:06:30 +01:00
Add .sort support for SaverList
This commit is contained in:
parent
255ef3d4db
commit
e58147a7e5
3 changed files with 73 additions and 1 deletions
|
|
@ -229,6 +229,13 @@ class _SaverMutable(object):
|
|||
def __ne__(self, other):
|
||||
return self._data != other
|
||||
|
||||
def __lt__(self, other):
|
||||
return self._data < other
|
||||
|
||||
def __gt__(self, other):
|
||||
return self._data > other
|
||||
|
||||
|
||||
@_save
|
||||
def __setitem__(self, key, value):
|
||||
self._data.__setitem__(key, self._convert_mutables(value))
|
||||
|
|
@ -274,6 +281,13 @@ class _SaverList(_SaverMutable, MutableSequence):
|
|||
def index(self, value, *args):
|
||||
return self._data.index(value, *args)
|
||||
|
||||
@_save
|
||||
def sort(self, *, key=None, reverse=False):
|
||||
self._data.sort(key=key, reverse=reverse)
|
||||
|
||||
def copy(self):
|
||||
return self._data.copy()
|
||||
|
||||
|
||||
class _SaverDict(_SaverMutable, MutableMapping):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -298,7 +298,7 @@ class EvMore(object):
|
|||
nsize = len(inp)
|
||||
self._npages = nsize // self.height + (0 if nsize % self.height == 0 else 1)
|
||||
self._data = inp
|
||||
self._paginator_slice
|
||||
self._paginator = self.paginator_slice
|
||||
|
||||
def init_f_str(self, text):
|
||||
"""
|
||||
|
|
|
|||
58
evennia/utils/tests/test_dbserialize.py
Normal file
58
evennia/utils/tests/test_dbserialize.py
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
"""
|
||||
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}])
|
||||
Loading…
Add table
Add a link
Reference in a new issue