Fix issue with channel nick aliases.

This commit is contained in:
Owllex 2023-02-25 13:19:00 -08:00
parent a6df975624
commit 5d53e8002e
3 changed files with 43 additions and 16 deletions

View file

@ -7,6 +7,7 @@ import re
from django.contrib.contenttypes.models import ContentType
from django.urls import reverse
from django.utils.text import slugify
from evennia.comms.managers import ChannelManager
from evennia.comms.models import ChannelDB
from evennia.typeclasses.models import TypeclassBase
@ -66,7 +67,7 @@ class DefaultChannel(ChannelDB, metaclass=TypeclassBase):
# default nick-alias replacements (default using the 'channel' command)
channel_msg_nick_pattern = r"{alias}\s*?|{alias}\s+?(?P<arg1>.+?)"
channel_msg_nick_replacement = "channel {channelname} = $1"
channel_msg_nick_replacement = "@channel {channelname} = $1"
def at_first_save(self):
"""

View file

@ -1,8 +1,20 @@
from django.test import SimpleTestCase
from evennia import DefaultChannel
from evennia.commands.default.comms import CmdChannel
from evennia.utils.create import create_message
from evennia.utils.test_resources import BaseEvenniaTest
class TestCommsNickMatchesCommand(SimpleTestCase):
def test(self):
"""
Verifies that the nick being set by DefaultChannel matches the channel
command key.
"""
self.assertTrue(DefaultChannel.channel_msg_nick_replacement.startswith(CmdChannel.key))
class ObjectCreationTest(BaseEvenniaTest):
def test_channel_create(self):
description = "A place to talk about coffee."
@ -18,6 +30,29 @@ class ObjectCreationTest(BaseEvenniaTest):
self.assertEqual(str(msg), "peewee herman->: heh-heh!")
class ChannelSubscriptionTests(BaseEvenniaTest):
def setUp(self):
super().setUp()
self.default_channel, _ = DefaultChannel.create(
"catlovers", description="A place for feline fanciers."
)
self.default_channel.connect(self.obj1)
def test_subscribe_unsubscribe(self):
self.default_channel.connect(self.char1)
self.assertTrue(self.default_channel.subscriptions.has(self.char1))
self.assertEqual(
self.char1.nicks.nickreplace("catlovers I love cats!"),
"@channel catlovers = I love cats!",
)
self.default_channel.disconnect(self.char1)
self.assertFalse(self.default_channel.subscriptions.has(self.char1))
self.assertEqual(
self.char1.nicks.nickreplace("catlovers I love cats!"),
"catlovers I love cats!",
)
class ChannelWholistTests(BaseEvenniaTest):
def setUp(self):
super().setUp()