Merge pull request #3104 from Machine-Garden-MUD/main

Cast tags to strings
This commit is contained in:
Griatch 2023-02-25 08:41:12 +01:00 committed by GitHub
commit 9f30d5feb4
2 changed files with 23 additions and 5 deletions

View file

@ -254,7 +254,7 @@ class TagHandler(object):
database lookup.
"""
key = key.strip().lower() if key else None
key = str(key).strip().lower() if key else None
category = category.strip().lower() if category else None
if key:
cachekey = "%s-%s" % (key, category)
@ -323,7 +323,10 @@ class TagHandler(object):
return
if not key: # don't allow an empty key in cache
return
key, category = (key.strip().lower(), category.strip().lower() if category else category)
key, category = (
str(key).strip().lower(),
category.strip().lower() if category else category,
)
cachekey = "%s-%s" % (key, category)
catkey = "-%s" % category
self._cache[cachekey] = tag_obj
@ -340,7 +343,10 @@ class TagHandler(object):
category (str or None): A cleaned category name
"""
key, category = (key.strip().lower(), category.strip().lower() if category else category)
key, category = (
str(key).strip().lower(),
category.strip().lower() if category else category,
)
catkey = "-%s" % category
if key:
cachekey = "%s-%s" % (key, category)
@ -419,7 +425,7 @@ class TagHandler(object):
category = category.strip().lower() if category is not None else None
if key:
for tag_str in make_iter(key):
tag_str = tag_str.strip().lower()
tag_str = str(tag_str).strip().lower()
ret.append(bool(self._getcache(tag_str, category)))
elif category:
ret.extend(bool(tag) for tag in self._getcache(category=category))
@ -507,7 +513,7 @@ class TagHandler(object):
for key in make_iter(key):
if not (key or key.strip()): # we don't allow empty tags
continue
tagstr = key.strip().lower()
tagstr = str(key).strip().lower()
category = category.strip().lower() if category else category
# This does not delete the tag object itself. Maybe it should do

View file

@ -314,6 +314,18 @@ class TestTags(BaseEvenniaTest):
self.obj1.tags.add("tagC", "categoryC")
self.assertFalse(self.obj1.tags.has(category="categoryD"))
def test_integer_tag(self):
self.obj1.tags.add(1)
self.assertTrue(self.obj1.tags.has(1))
self.assertTrue(self.obj1.tags.get(1))
self.assertTrue(self.obj1.tags.has("1"))
self.assertTrue(self.obj1.tags.get("1"))
self.obj1.tags.remove(1)
self.assertFalse(self.obj1.tags.has(1))
self.assertFalse(self.obj1.tags.get(1))
self.assertFalse(self.obj1.tags.has("1"))
self.assertFalse(self.obj1.tags.get("1"))
def test_tag_add_no_category__issue_2688(self):
"""
Adding a tag without a category should create a new tag:None tag