Merge branch 'develop' of github.com:Tegiminis/evennia into develop
# Conflicts: # evennia/typeclasses/attributes.py
This commit is contained in:
commit
da0e380fa5
73 changed files with 2774 additions and 1099 deletions
|
|
@ -218,6 +218,7 @@ class AttributeProperty:
|
|||
"""
|
||||
value = self._default
|
||||
try:
|
||||
<<<<<<< HEAD
|
||||
value = self.at_get(getattr(instance, self.attrhandler_name).get(
|
||||
key=self._key,
|
||||
default=self._default,
|
||||
|
|
@ -225,6 +226,17 @@ class AttributeProperty:
|
|||
strattr=self._strattr,
|
||||
raise_exception=self._autocreate,
|
||||
), instance)
|
||||
=======
|
||||
value = self.at_get(
|
||||
getattr(instance, self.attrhandler_name).get(
|
||||
key=self._key,
|
||||
default=self._default,
|
||||
category=self._category,
|
||||
strattr=self._strattr,
|
||||
raise_exception=self._autocreate,
|
||||
)
|
||||
)
|
||||
>>>>>>> ce3992f999a164881462d8f878d71a47a8f946cc
|
||||
except AttributeError:
|
||||
if self._autocreate:
|
||||
# attribute didn't exist and autocreate is set
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ class TypedObjectManager(idmapper.manager.SharedMemoryManager):
|
|||
categories = make_iter(category) if category else []
|
||||
n_keys = len(keys)
|
||||
n_categories = len(categories)
|
||||
unique_categories = sorted(set(categories))
|
||||
unique_categories = set(categories)
|
||||
n_unique_categories = len(unique_categories)
|
||||
|
||||
dbmodel = self.model.__dbclass__.__name__.lower()
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ class Tag(models.Model):
|
|||
# Handlers making use of the Tags model
|
||||
#
|
||||
|
||||
|
||||
class TagProperty:
|
||||
"""
|
||||
Tag property descriptor. Allows for setting tags on an object as Django-like 'fields'
|
||||
|
|
@ -112,6 +113,7 @@ class TagProperty:
|
|||
mytag2 = TagProperty(category="tagcategory")
|
||||
|
||||
"""
|
||||
|
||||
taghandler_name = "tags"
|
||||
|
||||
def __init__(self, category=None, data=None):
|
||||
|
|
@ -134,10 +136,7 @@ class TagProperty:
|
|||
"""
|
||||
try:
|
||||
return getattr(instance, self.taghandler_name).get(
|
||||
key=self._key,
|
||||
category=self._category,
|
||||
return_list=False,
|
||||
raise_exception=True
|
||||
key=self._key, category=self._category, return_list=False, raise_exception=True
|
||||
)
|
||||
except AttributeError:
|
||||
self.__set__(instance, self._category)
|
||||
|
|
@ -150,9 +149,7 @@ class TagProperty:
|
|||
self._category = category
|
||||
(
|
||||
getattr(instance, self.taghandler_name).add(
|
||||
key=self._key,
|
||||
category=self._category,
|
||||
data=self._data
|
||||
key=self._key, category=self._category, data=self._data
|
||||
)
|
||||
)
|
||||
|
||||
|
|
@ -430,8 +427,15 @@ class TagHandler(object):
|
|||
|
||||
return ret[0] if len(ret) == 1 else ret
|
||||
|
||||
def get(self, key=None, default=None, category=None, return_tagobj=False, return_list=False,
|
||||
raise_exception=False):
|
||||
def get(
|
||||
self,
|
||||
key=None,
|
||||
default=None,
|
||||
category=None,
|
||||
return_tagobj=False,
|
||||
return_list=False,
|
||||
raise_exception=False,
|
||||
):
|
||||
"""
|
||||
Get the tag for the given key, category or combination of the two.
|
||||
|
||||
|
|
@ -613,6 +617,7 @@ class AliasProperty(TagProperty):
|
|||
bob = AliasProperty()
|
||||
|
||||
"""
|
||||
|
||||
taghandler_name = "aliases"
|
||||
|
||||
|
||||
|
|
@ -636,6 +641,7 @@ class PermissionProperty(TagProperty):
|
|||
myperm = PermissionProperty()
|
||||
|
||||
"""
|
||||
|
||||
taghandler_name = "permissions"
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -142,6 +142,15 @@ class TestTypedObjectManager(BaseEvenniaTest):
|
|||
[self.obj1],
|
||||
)
|
||||
|
||||
def test_get_tag_with_any_including_nones(self):
|
||||
self.obj1.tags.add("tagA", "categoryA")
|
||||
self.assertEqual(
|
||||
self._manager(
|
||||
"get_by_tag", ["tagA", "tagB"], ["categoryA", "categoryB", None], match="any"
|
||||
),
|
||||
[self.obj1],
|
||||
)
|
||||
|
||||
def test_get_tag_withnomatch(self):
|
||||
self.obj1.tags.add("tagC", "categoryC")
|
||||
self.assertEqual(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue